Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NullPointerException困难_Java_Nullpointerexception - Fatal编程技术网

Java NullPointerException困难

Java 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

所以我在编程作业上遇到了一些麻烦。我已经创建了所需的类,并且它已经完全编译,但是当我运行它时,我得到了一个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 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 put
xx=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 put
xx=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;