【问题标题】:searching for a value in java在java中搜索一个值
【发布时间】:2014-07-13 23:30:35
【问题描述】:

这里有个小问题..

for(int i=0; i<employee.length-1;i++){

            if(employee[i].getID()==ID){
                System.out.println("Employee Record for "+employee[i].getfName()+" "+employee[i].getlName()+" (ID#"+employee[i].getID()+"):\n"
                        + "Basic Pay: "+employee[i].getSalary(0)+"\n"
                        + "Housing Allowence: "+employee[i].getSalary(1)+"\n"
                        + "Travel Allowence:  "+employee[i].getSalary(2)+"\n"
                        + "Net Salary : "+employee[i].getNetSalary()+"\n"
                        + "Taxable : "+employee[i].getTaxable());break;}


       if(i==employee.length-1){
           System.out.println("EMPLOYEE NOT FOUND !!!");}

这是我通过 id 搜索员工的代码。我在运行时收到一条错误消息! 这些值是由用户输入的,我对此没有问题

错误信息:

Exception in thread "main" java.lang.NullPointerException
    at dd1318398p2.EmpRecord.searchEmpID(EmpRecord.java:103)
    at dd1318398p2.EmpRecord.main(EmpRecord.java:37)
Java Result: 1

错误是指第一个 if 语句

【问题讨论】:

  • 您能否至少也包括您收到的错误?
  • 这很明显意味着employee[i]null
  • 我希望你的代码看起来不像那样。你的break 声明看起来像是一个混入人群的人,因为他不想让他的前妻看到他。这是你逻辑的一个重要部分,那么你为什么要隐藏它呢?

标签: java arrays object arrayobject


【解决方案1】:

如果错误是指第一个if 语句,

if(employee[i].getID()==ID)

这会给你一个 NullPointerException 那么employee[i] 必须为空。你可以检查一下,

if (employee[i] != null && employee[i].getID()==ID)

或者,如果您需要一堆 if 测试,请使用 continue...

if (employee[i] == null) continue;
if(employee[i].getID()==ID) {
}

【讨论】:

  • 谢谢,它有效,但我不明白这个问题!你能解释一下吗?
  • employee[i] 为空。 Null 没有要获取的 ID,因为 null 是“非值”的同义词。
猜你喜欢
  • 2013-09-17
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 2013-03-06
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多