Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建实例时出现空指针异常_Java_Exception_Nullpointerexception - Fatal编程技术网

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。所以,声明日期,然后将其用于出生日期的日化。