NullPointerException难度

时间:2013-04-12 00:00:10

标签: java nullpointerexception

所以我在编程任务上遇到了一些麻烦。我已经创建了所需的类,它已经完全编译,但是当我运行它时,我得到一个NullPointerException。

所有例外都指向此方法;

public void initializeCount(){
for(int j=0; j<t.length; j++){
 String s=t[j];
 WordCount h=new WordCount(s);
 xx[j]=h;
}
}

xx []是一个相关对象(WordCount)的数组,并且在类的开头定义(我不记得这是什么,仍然是编程新手)

public class WordFreq extends Echo{
  private String wordString;
  private String[] t;
  private WordCount[] xx;
  private int words=0;
  Scanner scan;
 }

t是一个字符串对象数组,在构造函数

中填充
public WordFreq (String x, String y) throws IOException{
super(x);
wordString=y;
t=wordString.split(" ");
scan = new Scanner(new FileReader(fileName));
}

回到initializeCount方法,我想要它做的是取t []中保存的单词,将它们转换为WordCount对象,然后将这些对象放在xx []中。

编辑:我很确定我在课程开始时初始化了xx,但我可能错了:

public class WordFreq extends Echo{
private String wordString;
private String[] t;
private WordCount[] xx;
private int words=0;
Scanner scan;
}

如果有人可以向我解释为什么initializeCount方法导致NullPointerException,我应该能够修复它并使程序正常工作。非常感谢任何帮助,如果需要,我可以提供更多的程序代码。

3 个答案:

答案 0 :(得分:3)

xx数组是否在某处初始化了?

答案 1 :(得分:1)

你没有初始化xx我认为你想要将xx初始化为t的大小,所以做类似的事情

  xx = new WordCount[t.length];

答案 2 :(得分:0)

对象't'是否已在某处初始化

您可以更改下面的初始化方法,并检查对象t的打印内容。我怀疑对象t为空。我还添加了一个空检查以防止空指针异常。

public void initializeCount(){
System.out.println("What is the value of t --->"+t);
if(t!= null){
for(int j=0; j<t.length; j++){
 String s=t[j];
 WordCount h=new WordCount(s);
 xx[j]=h;
}
}
}