输出显示空值。如何解决

时间:2011-04-02 07:37:44

标签: java

我有三个班级:

CustomerData.java

import java.util.Date;
public class CustomerData 
{
   private String FirstName;
   private String LastName;
   private int TaxId;
   private String HomePhone;
   private String WorkPhone;
   private String HomeAddress;
private Date Dob;
private String EmployerName;
private boolean isEmployed;
private String ProDescription;
private String IsSameAsPrevious;

public String getFirstName() {
    return FirstName;
}
public void setFirstName(String firstName) {
    FirstName = firstName;
}
public String getLastName() {
    return LastName;
}
public void setLastName(String lastName) {
    LastName = lastName;
}
public int getTaxId() {
    return TaxId;
}
public void setTaxId(int taxId) {
    TaxId = taxId;
}
public String getHomePhone() {
    return HomePhone;
}
public void setHomePhone(String homePhone) {
    HomePhone = homePhone;
}
public String getWorkPhone() {
    return WorkPhone;
}
public void setWorkPhone(String workPhone) {
    WorkPhone = workPhone;
}
public String getHomeAddress() {
    return HomeAddress;
}
public void setHomeAddress(String homeAddress) {
    HomeAddress = homeAddress;
}
public Date getDob() {
    return Dob;
}
public void setDob(Date dob) {
    Dob = dob;
}
public String getEmployerName() {
    return EmployerName;
}
public void setEmployerName(String employerName) {
    EmployerName = employerName;
}
public boolean isEmployed() {
    return isEmployed;
}
public void setEmployed(boolean isEmployed) {
    this.isEmployed = isEmployed;
}
public String getProDescription() {
    return ProDescription;
}
public void setProDescription(String proDescription) {
    ProDescription = proDescription;
}
public String getIsSameAsPrevious() {
    return IsSameAsPrevious;
}
public void setIsSameAsPrevious(String isSameAsPrevious) {
    IsSameAsPrevious = isSameAsPrevious;
}

}

MainCntrlr.java

public class MainCntrlr {
             public static void main(String[] args) 
 {
    CustomerData customerData=new CustomerData();
    customerData.setFirstName("RAVI");
    customerData.setLastName("Shekhar");
    customerData.setHomePhone("123456789");
    customerData.setWorkPhone("1256554634");
    customerData.setHomeAddress("Banagalore");
    customerData.setEmployerName("ABc");
    customerData.setProDescription("New Produtc");
    customerData.setTaxId(1233434343);



    ContrOne ctr=new ContrOne();
    ctr.displayInformation();
        }
}

ContrOne.java

import com.blr.CustomerData;
public class ContrOne 
{
  public void displayInformation()
  {
CustomerData cd=new CustomerData();
System.out.println("displaying customer Info");

System.out.println(cd.getFirstName());
System.out.println(cd.getLastName());
System.out.println(cd.getHomePhone());
System.out.println(cd.getWorkPhone());
System.out.println(cd.getEmployerName());
System.out.println(cd.getProDescription());
System.out.println(cd.getDob());
System.out.println(cd.getTaxId());


  }
}

输出是:

displaying customer Info
null
null
null
null
null
null
null
0

3 个答案:

答案 0 :(得分:7)

在方法ContrOne.displayInformation()中,您可以创建一个新的new CustomerData()对象。因此它未正确初始化。也许您想将customerData方法中的main传递给displayInformation

答案 1 :(得分:2)

您正在CustomerData课程中创建MainCntrlr对象,但未将其传递给ContrOne课程。 ContrOne正在创建自己的CustomerData对象并打印其值为null的值。

一种可能的解决方案是更改displayInfo的签名,并将CustomerData对象从MainCntrlr类传递给此方法。

其他几点要注意

  1. 班级名称令人困惑。目前尚不清楚为何分别创建了MainCntrlrContrOne类。
  2. 如果您只想显示客户信息,则可能需要覆盖toString课程中的CustomerData()方法。

答案 2 :(得分:2)

您的ContrOne.displayInformation()CustomerData()新对象实例化为cd,但从不填充其中的字段。

如果您希望ContrOne显示信息,请执行以下操作:

public class ContrOne {

    public void displayInformation(CustomerData cd)  {
        System.out.println("displaying customer Info");

        System.out.println(cd.getFirstName());
        System.out.println(cd.getLastName());
        System.out.println(cd.getHomePhone());
        System.out.println(cd.getWorkPhone());
        System.out.println(cd.getEmployerName());
        System.out.println(cd.getProDescription());
        System.out.println(cd.getDob());
        System.out.println(cd.getTaxId());
    }
}

并在MainCntrlr

public static void main(String[] args) {
    CustomerData customerData=new CustomerData();
    customerData.setFirstName("RAVI");
    customerData.setLastName("Shekhar");
    customerData.setHomePhone("123456789");
    customerData.setWorkPhone("1256554634");
    customerData.setHomeAddress("Banagalore");
    customerData.setEmployerName("ABc");
    customerData.setProDescription("New Produtc");
    customerData.setTaxId(1233434343);

    ContrOne ctr=new ContrOne();
    ctr.displayInformation(customerData);
}