Java NullPointerException困难
所以我在编程作业上遇到了一些麻烦。我已经创建了所需的类,并且它已经完全编译,但是当我运行它时,我得到了一个NullPointerExceptionJava NullPointerException困难,java,nullpointerexception,Java,Nullpointerexception,所以我在编程作业上遇到了一些麻烦。我已经创建了所需的类,并且它已经完全编译,但是当我运行它时,我得到了一个NullPointerException 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 WordCoun
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;
}
}
}
所有的异常都指向这个方法
public void initializeCount(){
for(int j=0; j<t.length; j++){
String s=t[j];
WordCount h=new WordCount(s);
xx[j]=h;
}
}
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,我应该能够修复它并使程序正常工作。非常感谢您的帮助,如果需要,我可以提供更多的程序代码 xx数组在某处初始化了吗?xx数组在某处初始化了吗?您没有初始化xx,我想您希望xx被初始化为t的大小,所以执行以下操作
xx = new WordCount[t.length];
你没有初始化xx,我想你希望xx被初始化为t的大小,所以你可以这样做
xx = new WordCount[t.length];
对象“t”是否已在某个位置初始化 您可以按如下所示更改初始化方法并检查对象t的打印内容吗。我怀疑对象t为null。我还添加了一个空检查来防止空指针异常
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;
}
}
}
public void initializeCount(){
System.out.println(“t的值是多少?-->”+t);
如果(t!=null){
对于(int j=0;jDid对象“t”在某处初始化
您能否按如下所示更改初始化方法并检查对象t的打印内容。我怀疑对象t为null。我还添加了null检查以防止null指针异常
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;
}
}
}
public void initializeCount(){
System.out.println(“t的值是多少?-->”+t);
如果(t!=null){
对于(int j=0;j实际上,我想我在开始时初始化了xx公共类WordFreq extensed Echo{private String wordString;private String[]t;private WordCount[]xx;private int words=0;Scanner scan;
这是您用以“初始化”的代码吗?因为这不是一个初始化语句,这只是声明,在t=wordString.split(“”)之后;
just putxx=new WordCount[t.length]
这解决了我的问题,谢谢!实际上,我想我在一开始就初始化了xx公共类WordFreq扩展Echo{private String wordString;private String[]t;private WordCount[]xx;private int words=0;Scanner scan;
这是您用以“初始化”的代码吗?因为这不是一个初始化语句,这只是声明,在t=wordString.split(“”)之后;
just putxx=new WordCount[t.length]
这解决了我的问题,谢谢!是的,我想我在问题的开始就解决了公共类WordFreq扩展Echo{private String wordString;private String[]t;private WordCount[]xx;private int words=0;
扫描程序;是的,我想我在问题的开始就解决了公共类WordFreq扩展Echo{private String wordString;private String[]t;private WordCount[]xx;private int words=0;
Scanner scan;