public class HelloWorld{
class Student {
int marks;
}
public static void main(String []args){
Student studentArray[] = new Student[2];
studentArray[0].marks = 100;
studentArray[1].marks = 75;
int m=0;
m = studentArray[0].marks;
System.out.println(m);
}
}
这编译没有问题但是当我执行它时,我得到空指针异常错误如下:
线程中的异常" main" .lang.NullPointerException at HelloWorld.main(HelloWorld.java:13)
有人可以帮我找到原因吗?
答案 0 :(得分:3)
您创建了一个大小为2的数组,该数组被指定用于保存带有Student studentArray[] = new Student[2];
的Student对象,因此现在您有一个空容器。然后,您尝试访问该空容器的元素,该元素抛出空指针异常。您需要将Student对象放入Student容器中以访问容器元素。
答案 1 :(得分:0)
这样的东西就是你要找的东西:
public class HelloWorld{
class Student {
int marks;
}
public static void main(String []args){
Student studentArray[] = new Student[2];
studentArray[0] = new Student(); // .marks = 100;
studentArray[1] = new Student(); // .marks = 75;
studentArray[0].marks = 100;
studentArray[1].marks = 75;
int m=0;
m = studentArray[0].marks;
System.out.println(m);
}
}
答案 2 :(得分:0)
public class HelloWorld{
public static void main(String []args){
Student studentArray[] = new Student[2];
HelloWorld helloWorld = new HelloWorld();
for(int i=0; i<studentArray.length; i++) {
studentArray[i] = helloWorld.new Student();
}
studentArray[0].marks = 100;
studentArray[1].marks = 75;
int m=0;
m = studentArray[0].marks;
System.out.println(m);
}
class Student {
int marks;
}
}
您收到NullPointerException,因为您尚未在studentArray中初始化Student对象。然后,您尝试访问不存在的错误。
以上代码应该可以解决您的错误。