Java 创建实例时出现空指针异常
我有一个例外,我不知道如何解决它Java 创建实例时出现空指针异常,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,我有一个例外,我不知道如何解决它 Person a = new Person(); Scanner in = new Scanner(System.in); System.out.println("Please type name: "); String name = in.nextLine(); 上面说第一行有个例外。 以下代码是默认构造函数 Person(){ this.name = "No_Name"; this.surname = "No_Surna
Person a = new Person();
Scanner in = new Scanner(System.in);
System.out.println("Please type name: ");
String name = in.nextLine();
上面说第一行有个例外。
以下代码是默认构造函数
Person(){
this.name = "No_Name";
this.surname = "No_Surname";
this.number = "No_Number";
this.personalCode = "No_personalCode";
this.dateOfBirth.set(Calendar.DAY_OF_MONTH, 1);
this.dateOfBirth.set(Calendar.MONTH, Calendar.JANUARY);
this.dateOfBirth.set(Calendar.YEAR, 1900);
}
班级人员完整代码:
import java.util.Calendar;
public class Person {
String name;
String surname;
private String number;
private String personalCode;
private Calendar dateOfBirth;
Person(){
this.name = "No_Name";
this.surname = "No_Surname";
this.number = "No_Number";
this.personalCode = "No_personalCode";
this.dateOfBirth.set(Calendar.DAY_OF_MONTH, 1);
this.dateOfBirth.set(Calendar.MONTH, Calendar.JANUARY);
this.dateOfBirth.set(Calendar.YEAR, 1900);
}
Person(String name,String surname,String number,String personalCode,Calendar dateOfBirth){
this.name = name;
this.surname = surname;
this.number = number;
this.personalCode = personalCode;
this.dateOfBirth = (Calendar) dateOfBirth.clone();
}
Person setName(Person a, String name) {
a.name = name;
return a;
}
Person setSurname(Person a, String surname) {
a.surname = surname;
return a;
}
Person setNumber(Person a, String number) {
a.number = number;
return a;
}
Person setpersonalCode(Person a, String personalCode) {
a.personalCode = personalCode;
return a;
}
String getName(Person a) {
return a.name;
}
String getSurname(Person a) {
return a.surname;
}
String getNumber(Person a) {
return a.number;
}
String getPersonalCode(Person a) {
return a.personalCode;
}
Calendar getDateOfBirth(Person a) {
return a.dateOfBirth;
}
}
您正在对空字段(dateOfBirth
)调用set()
可能的解决方法:
Date date = new GregorianCalendar(1900, Calendar.FEBRUARY, 1).getTime();
this.dateOfBirth = date;
你从来没有创建过这个.dateOfBirth
。你能给我们看一下类人的完整代码吗?您可以省略getter和setter…我应该在哪里创建它?在构造函数中?是的,将this.dateOfBirth.set(…)替换为this。所以,声明日期,然后将其用于出生日期的日化。