为什么我在java中有这个异常:线程"main"中的异常java.lang.NullPointerException

Hal*_*anf 0 java arrays for-loop nullpointerexception

这是我的主要代码:

Scanner input= new Scanner(System.in);

Student[] starray=new Student[5];

for (int i=0; i<3; i++)
{
    System.out.println("enter:");
    starray[i].name=input.next();   
    System.out.println("enter:");
    starray[i].family=input.next(); 
    System.out.println("enter:");
    starray[i].sid=input.nextInt();
}      
for(int i=0; i<3; i++)
        System.out.println(starray[i].name);
Run Code Online (Sandbox Code Playgroud)

我有一节课:

String name,family;
Integer sid;

Student(){
       name="kh";
       family="kh";
       sid=0;}
Run Code Online (Sandbox Code Playgroud)

当我运行它时有以下异常:在testcodes.TestCodes.main(TestCodes.java:19)的线程"main"java.lang.NullPointerException中的异常Java结果:1

Bat*_*eba 5

Student[] starray = new Student[5];只创造容器.该容器中的每个元素都将是null.

您需要依次创建每个.在你的循环中,考虑一下

starray[i] = new Student();

更好的是,为a创建一个强类型构造函数Student,将名称等作为参数.这有助于提高程序的稳定性.