Java 在调用getter方法时获取NullPointerException
我有三个班,学生主修,学生服务,学生。Student类包含getter和setters方法,我从StudentMain将Student对象传递给StudentService。代码如下: StudentMain的代码:Java 在调用getter方法时获取NullPointerException,java,Java,我有三个班,学生主修,学生服务,学生。Student类包含getter和setters方法,我从StudentMain将Student对象传递给StudentService。代码如下: StudentMain的代码: public class StudentMain { static Student data [] = new Student[4]; static { for (int i = 0; i < data.length; i++) data [i] =new Stud
public class StudentMain {
static Student data [] = new Student[4];
static { for (int i = 0; i < data.length; i++)
data [i] =new Student();
data [0] = new Student ("Sekar", new int [] {35, 35, 35});
data [1] = new Student(null,new int[]{11,22,33});
data [2] = null;
data [3] = new Student ("Manoj", null);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StudentService studentService = new StudentService ();
System.out.println ("Number of Objects with Marks array as null =" + studentService.findNumberOfNullMarks (data));
System.out.println ("Number of Objects with Name as null="+ studentService.findNumberOfNullNames(data));
System.out.println ("Number of Objects that are entirely null="+ studentService.findNumberOfNullObjects(data));
}
public class Student {
private String name;
private int marks[];
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setMarks(int [] marks) {
this.marks=marks;
}
public int[] getMarks() {
return marks;
}
public Student() {
}
public Student(String name,int[] marks) {
setName(name);
setMarks(marks);
}
public class StudentService{
Student[] data;
public int findNumberOfNullMarks(Student data[]) {
this.data=data;
int count=0;
int i=0;
while(i!=data.length) {
if(data[i].getMarks()==null)
count++;
i++;
}
return count;
}
public int findNumberOfNullNames(Student data[]) {
int count=0;
int i=0;
while(i!=data.length) {
if(data[i].getName()==null)
count++;
i++;
}
return count;
}
public int findNumberOfNullObjects(Student data[]) {
int count=0;
int i=0;
while(i!=data.length) {
if(data[i]==null)
count++;
i++;
}
return count;
}
}
学生服务代码:
public class StudentMain {
static Student data [] = new Student[4];
static { for (int i = 0; i < data.length; i++)
data [i] =new Student();
data [0] = new Student ("Sekar", new int [] {35, 35, 35});
data [1] = new Student(null,new int[]{11,22,33});
data [2] = null;
data [3] = new Student ("Manoj", null);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StudentService studentService = new StudentService ();
System.out.println ("Number of Objects with Marks array as null =" + studentService.findNumberOfNullMarks (data));
System.out.println ("Number of Objects with Name as null="+ studentService.findNumberOfNullNames(data));
System.out.println ("Number of Objects that are entirely null="+ studentService.findNumberOfNullObjects(data));
}
public class Student {
private String name;
private int marks[];
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setMarks(int [] marks) {
this.marks=marks;
}
public int[] getMarks() {
return marks;
}
public Student() {
}
public Student(String name,int[] marks) {
setName(name);
setMarks(marks);
}
public class StudentService{
Student[] data;
public int findNumberOfNullMarks(Student data[]) {
this.data=data;
int count=0;
int i=0;
while(i!=data.length) {
if(data[i].getMarks()==null)
count++;
i++;
}
return count;
}
public int findNumberOfNullNames(Student data[]) {
int count=0;
int i=0;
while(i!=data.length) {
if(data[i].getName()==null)
count++;
i++;
}
return count;
}
public int findNumberOfNullObjects(Student data[]) {
int count=0;
int i=0;
while(i!=data.length) {
if(data[i]==null)
count++;
i++;
}
return count;
}
}
我在StudentService类中的if(data[I].getMarks()=null)
和if(data[I].getMarks()=null)
处遇到异常
data [0] = new Student ("Sekar", new int [] {35, 35, 35});
data [1] = new Student(null,new int[]{11,22,33});
data [2] = null;
data [3] = new Student ("Manoj", null);
对于i=0,数据[0]在对象中有对象和数组标记,所以您不会得到java.lang.NullPointerException
对于i=1,数据[1]具有object,并且在object中具有数组标记,所以您不会得到java.lang.NullPointerException
对于i=2,数据[2]为null,因此您将得到java.lang.NullPointerException
对于i=3,数据[3]具有对象,但数组标记为null,因此您将获得java.lang.NullPointerException
所以您需要确保您应该有对象和数组
对于i=0,数据[0]在对象中有对象和数组标记,所以您不会得到java.lang.NullPointerException
对于i=1,数据[1]具有object,并且在object中具有数组标记,所以您不会得到java.lang.NullPointerException
对于i=2,数据[2]为null,因此您将得到java.lang.NullPointerException
对于i=3,数据[3]具有对象,但数组标记为null,因此您将获得java.lang.NullPointerException
因此,您需要确保应该有对象和数组。data[2]==null数据[2]==null