“请帮帮我”;线程主java.lang.nullpointerexception中的java异常;
我想为我的项目寻求帮助。我是一名新手程序员,在线程主java.lang.nullpointerexception中没有出现此错误 这是我的代码:“请帮帮我”;线程主java.lang.nullpointerexception中的java异常;,java,Java,我想为我的项目寻求帮助。我是一名新手程序员,在线程主java.lang.nullpointerexception中没有出现此错误 这是我的代码: public class Slumbook{ public String codeName; public Slumbook(){ // } public Slumbook(String codeName){ this.codeName = codeName; }
public class Slumbook{
public String codeName;
public Slumbook(){
//
}
public Slumbook(String codeName){
this.codeName = codeName;
}
public String getCodeName(){return codeName;}
public void setCodeName(String codeName){this.codeName = codeName;}
}
而驱动程序
代码为:-
import java.util.*;
public class SlumbookD{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Slumbook[] slum = new Slumbook[20];
for(int n=0; n<10; n++){
slum[n].setCodeName(sc.nextLine());
}
}
}
import java.util.*;
公共课{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
贫民窟书[]贫民窟=新贫民窟书[20];
对于(int n=0;n您分配了数组…但未能分配数组中包含的任何对象
建议:
import java.util.*;
public class SlumbookD {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Slumbook[] slum = new Slumbook[20];
for(int n=0; n<slum.length; n++){
slum[n] = new Slumbook(sc.nextLine);
}
}
}
import java.util.*;
公共类贫民窟{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
贫民窟书[]贫民窟=新贫民窟书[20];
对于(int n=0;n您已经创建了空白数组,但没有初始化它,您必须在数组索引处关联对象引用,然后可以在该索引上调用任意数量的setter方法
Slumbook[]贫民窟=newslumbook[20];
对于(int n=0;n您需要在使用数组元素之前初始化它们
Slumbook[] slum = new Slumbook[20];
for(int n=0; n<10; n++){
slum[n] = new Slumbook();
slum[n].setCodeName(sc.nextLine());
}
Slumbook[]贫民窟=newslumbook[20];
对于(int n=0;您创建了一个数组,但从不初始化每个数组插槽。您应该了解什么是NullPointerException
,因为这个问题一直被问到。当您进入循环时,slum[n]
尚未实例化;也就是说,它是一个空引用/指针。要修复,请在尝试设置其代码名之前实例化slum
中的每个元素。缓慢键入…打字太多。@ambigram\u maker:因为OP将他的“驱动程序类”命名为SlumbookD。是的,我明白了…但这不是getCodeNae()
;-)的借口@Remarc Balisi-我的荣幸。很高兴它有帮助!我认为有两个for循环的开销更大,您能解释一下将来会出现哪一个异常吗?
Slumbook[] slum = new Slumbook[20];
for(int n=0; n<10; n++){
slum[n] = new Slumbook(); // Instantiate Slumbook class and assign reference
slum[n].setCodeName(sc.nextLine());
}
Slumbook[] slum = new Slumbook[20];
for(int n=0; n<10; n++){
slum[n] = new Slumbook();
slum[n].setCodeName(sc.nextLine());
}
Slumbook[] slum = new Slumbook[20];
for(int i = 0 ; i < slum.length ; i++) //initializing all the elements
slum[i] = new Slumbook();
for(int n=0; n<10; n++){
slum[n].setCodeName(sc.nextLine());
}