【问题标题】:how to tell if the element.get() in a list in java is null or not?如何判断 java 列表中的 element.get() 是否为空?
【发布时间】:2020-05-18 20:29:06
【问题描述】:

我正在尝试编写代码来检查 arraylist 中 element.get() 的 if 条件是否为空 如何在不引发错误的情况下访问它 这是我的代码

if(EmployeeSalaryPaymentlist.get(j)!=null) {
    EmployeeSalaryPaymentlist.get(j).getFromEmployeeBean().setFirst(fromEmployeeSalaryPaymentList.get(j).getFromEmployeeBean().getFirst());
    EmployeeSalaryPaymentlist.get(j).getFromEmployeeBean().setLast(fromEmployeeSalaryPaymentList.get(j).getFromEmployeeBean().getLast());
    EmployeeSalaryPaymentlist.get(j).getFromEmployeeBean().setEmployeeId(fromEmployeeSalaryPaymentList.get(j).getFromEmployeeBean().getEmployeeId());
}

【问题讨论】:

    标签: java spring list arraylist collections


    【解决方案1】:

    我会像这样重写代码,通过对两个对象添加检查,使其更清晰、更安全。

    final Employee employee = EmployeeSalaryPaymentlist.get(j);
    final Employee employeeFrom = fromEmployeeSalaryPaymentlist.get(j);
    if(employee != null && employeeFrom != null) {
        final EmployeeBean to = employee.getFromEmployeeBean();
        final EmployeeBean from = employeeFrom.getFromEmployeeBean()
        to.setFirst(from.getFirst());
        to.setLast(from.getLast());
        to.setEmployeeId(from.getEmployeeId());
    }
    

    当然,如果 employee.getFromEmployeeBean 也可能返回 null,您还需要一个类似的 if

    【讨论】:

      【解决方案2】:

      执行此检查的一种更好的方法(从 Java 8 开始)是使用 Optional

      Optional<Employee> optEmployee = Optional.ofNullable(employeeSalaryPaymentlist.get(j));
      if( optEmployee.isPresent() ) 
      {
          Employee fromEmployee = optEmployee.get();
          //rest of the code
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        • 2019-03-24
        • 1970-01-01
        • 2019-03-20
        • 2013-03-11
        • 2018-08-27
        相关资源
        最近更新 更多