public int FindWordInList(String temp) {
Iterator iterator =this.iterator();
int i=0;
while (iterator.hasNext()) {

Word elem = (Word) iterator.next();
//String str=new String(elem.getEnglish());
if (elem.getEnglish().equals(temp)) {
return i;
}
i++;
}
return i;
}
出现  java.lang.NullPointerException 异常

解决方案 »

  1.   

    elem == null 或者elem.getEnglish()==null
      

  2.   

    如果确认 temp !=null;使用 temp.equals(elem.getEnglish());
      

  3.   

    我感觉楼上说的都不太对,如果是iterator出来的怎么会为空呢?楼主能把全部代码贴出来或说出来具体哪行报错么?那个this.iterator是什么意思呢?
      

  4.   

    我看错啦!应该是getEnglish之后为空了。
      

  5.   

    也有可能是你那个getEnglish方法中的问题。
      

  6.   

    //String str=new String(elem.getEnglish());
    这句话 是废话。没用到
    另外String 赋值 最好采用String str = elem.getEnglish();
    一般判断String应该是 确保有值的变量在前面就不会报错了

    String test = null;
    if("test".equals(test))//这样写即使Test等于空 也不会报错。
    java.lang.NullPointerException 很显然,如果elem =null 就会爆出空指异常错误。确保elem不等于null 再比较吧
    public int findWordInList(String temp) {
    Iterator iterator =this.iterator();
    int i=0;
    String temp = "";//这个变量再那。?
    while (iterator.hasNext()) {Word elem = (Word) iterator.next();if (elem.getEnglish()!=null && elem.getEnglish().equals(temp)) {
    return i;
    }
    i++;
    }
    return i;
    }
    注:java规范 一般来说 方法名第一个字母是小写,类名第一个字母为大写!
      

  7.   

    字符串和null值比较,null要放后面
      

  8.   

    反过来写 就没什么大问题了:
    temp.equals(elem.getEnglish());