所以我在编程任务上遇到了一些麻烦。我已经创建了所需的类,它已经完全编译,但是当我运行它时,我得到一个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,我应该能够修复它并使程序正常工作。非常感谢任何帮助,如果需要,我可以提供更多的程序代码。
答案 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;
}
}
}