簡體   English   中英

線程“主”中的異常java.lang.NullPointerException-不明白為什么?

[英]Exception in thread “main” java.lang.NullPointerException - don't understand why?

我仍然是Java的初學者,目前正在編寫一個學生記錄程序,並且陷入了這些錯誤,無法找出原因。

Exception in thread "main" java.lang.NullPointerException
at Results.Results(Results.java:11)
at Main.main(Main.java:21)

這是我的主類錯誤所在的位置,在第21行(下面的第二行)。

public class Main 
{
    public static void main(String[] args) 
    {

        StudentNames nameInputobject = new StudentNames();
        nameInputobject.StudentNames();


        Subject subjectInputobject = new Subject();
        subjectInputobject.Subject();

        StudentNumber numberInputobject = new StudentNumber();
        numberInputobject.StudentNumber();      

        StudentYear yearInputobject = new StudentYear();
        yearInputobject.StudentYear();  

        Results resultsInputobject = new Results();
        resultsInputobject.Results();   // <<<error here




    }
}    

和我的結果類中的錯誤

    import java.util.ArrayList;
import java.util.Scanner;

public class Results 
{
    public static void Results()
    {

        StudentYear obj=new StudentYear();
        ArrayList<Integer> studentYear=obj.getStudentYear();
        int year=studentYear.get(0); // <<<<error here 
        ArrayList<Integer> results = new ArrayList<Integer>();
        Scanner sc = new Scanner(System.in); 
        System.out.println("Please enter the results for "+year+":");
        results.add(sc.nextInt());
        System.out.println(results);

        }
    }

結果類從另一個類代碼中的數組列表獲取studentYear值。

import java.util.ArrayList;
import java.util.Scanner;

public class StudentYear 
{
    private ArrayList<Integer> studentYear;
    public void StudentYear()
    {
        studentYear = new ArrayList<Integer>();
        Scanner sc = new Scanner(System.in); 
        System.out.println("Please enter the year the student has most recently completed: ");
        studentYear.add(sc.nextInt());
        System.out.println(studentYear);
        }
        public ArrayList<Integer> getStudentYear()
        {
            return studentYear;
            }
}

我正在使用Arraylists,因為我計划最終使程序循環以容納多個學生值

請注意, studentYear變量是ArrayList<Integer>的實例。 這意味着它是對象Integer的集合。 這是圍繞原始數據類型int的“盒裝”包裝。

Integer對象可以為null,但int不能為null。

如果您尚未向此ArrayList添加任何內容,則零位置的元素將為null。 當VM嘗試將此Integer null實例轉換為原始int它將引發NullPointerException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM