我正在嘗試利用一個類,它使用三個其他類作爲數據字段。不幸的是,嘗試獲取嵌套對象的值似乎不起作用。不能使用對象 - java.lang.NullPointerException錯誤
這是用於測試的類主程序:
public class EmployeeTest
{
public static void main(String [] args)
{
String name1 = "John";
String name2 = "Smith";
String street = "12 Street";
String state = "MA";
String city = "Boston";
String zip = "50312";
int day = 12;
int month = 12;
int year = 2001;
Employee employee1 = new Employee(name1, name2, street, city, state, zip, month, day, year);
System.out.println("Employee's name is " + employee1.GetName1());
}
}
這是創建的類的對象:
public class Employee
{
private Name name;
private Address address;
private Date date;
// define data fields
public Employee(String name1, String name2, String street, String city, String state, String zip , int month, int day, int year)
{
Name name = new Name(name1 , name2);
Address address = new Address(street, city, state, zip);
Date date = new Date();
date.setDate(month , day, year);
}
// constructor
public String GetName1()
{
String name1 = name.GetFirstName();
return name1;
}
// first name getter
public String GetName2()
{
String name2 = name.GetLastName();
return name2;
}
public String GetStreetName()
{
String street = address.GetStreet();
return street;
}
// street getter
public String GetCityName()
{
String city = address.GetCity();
return city;
}
// street getter
public String GetStateName()
{
String state = address.GetState();
return state;
}
// street getter
public String GetZipCode()
{
String zip = address.GetZip();
return zip;
}
// street getter
public String GetDate()
{
String time = date.getDateString();
return time;
}
}
這是其可以是空的源極的類例外:
public class Name
{
private String FirstName;
private String LastName;
// define data fields
public Name(String name1 , String name2)
{
FirstName = name1;
LastName = name2;
}
// constructor
public String GetFirstName()
{
return FirstName;
}
// get first name
public String GetLastName()
{
return LastName;
}
// last name getter
public void SetFirstName(String name1)
{
FirstName = name1;
}
// first name setter
public void SetLastName(String name2)
{
LastName = name2;
}
// last name setter
}
不可避免地,使用Employee類似乎產生了這個錯誤:
Exception in thread "main" java.lang.NullPointerException
at Employee.GetName1(Employee.java:22)
at EmployeeTest.main(EmployeeTest.java:16)
可以確定,我在做什麼錯誤的聚合類?
這是爲什麼調試程序時,人們並不認爲使用他們的調試器?這將是微不足道的檢查和修復方式。 –