我现在仍然是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);
}
}
结果类从另一个类的arraylist中获取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,因为我计划最终使程序循环以保存多个学生值
答案 0 :(得分:0)
请注意,studentYear
变量是ArrayList<Integer>
的实例。这意味着它是对象Integer
的集合。这是基本数据类型int
的“盒装”包装器。
Integer
对象可以为null,但int
不能。
假设您尚未向此ArrayList添加任何内容,则位置0处的元素将为null。当VM尝试将此null
Integer
实例转换为原始int
时,它会抛出NullPointerException
。