1
public static void selectEMployee() {
   if (list1.isEmpty()) {
         System.out.println("The list is empty");
   }else {
         System.out.println("The list of employees are");
         for (Employee emp : list1) {
           System.out.println("Name::" + emp.getName() + "\t EmpId::"
                            + emp.getEmpid() + "\t Address::" + emp.getAddress()
                            + "\tphone::" + emp.getPhone());
         }       
    }
}

当列表为空时,我想显示“列表为空”但它会引发异常?

4

5 回答 5

11

list空对象和list尚未分配为对 a 的引用的类型变量之间存在差异list

即检查list1 == null。如果你 null得到一个NullPointerException.

把它放在一起,if (list1 == null || list1.isEmpty()){而不是写。这是安全的,因为 Javaif从左到右评估语句,一旦得到明确的答案就停止。

于 2013-09-13T08:47:59.303 回答
2

应用这个小修复,它将起作用:

if (list1 == null || list1.isEmpty()) {
    System.out.println("The list is empty");
}
于 2013-09-13T08:47:58.503 回答
1

试一次

public static void selectEMployee() {

  if (list1!=null && !list1.isEmpty()) {
      System.out.println("The list of employees are");

      for (Employee emp : list1) {
           System.out.println("Name::" + emp.getName() + "\t EmpId::"
            + emp.getEmpid() + "\t Address::" + emp.getAddress()
            + "\tphone::" + emp.getPhone());
      }

  } else {
      System.out.println("The list is empty");
  }
}
于 2013-09-13T08:53:02.187 回答
1
public static void selectEMployee() {
            if (list1.isEmpty() || list1==null) //changes made here{
               System.out.println("The list is empty");
            }// this is not allowed here
            } else {
 System.out.println("The list of employees are");
                for (Employee emp : list1) {
                    System.out.println("Name::" + emp.getName() + "\t EmpId::"
                            + emp.getEmpid() + "\t Address::" + emp.getAddress()
                            + "\tphone::" + emp.getPhone());
                }


        }

你在 if else for 循环关闭之前关闭 } for 方法

于 2013-09-13T08:48:10.757 回答
1

您的 list1-var 似乎未初始化。你应该这样检查:

if(list1 == null || list1.isEmpty())
于 2013-09-13T08:48:57.477 回答