开发者

Output showing null values. how to resolve

开发者 https://www.devze.com 2023-02-21 06:01 出处:网络
i have three classes : CustomerData.java import java.util.Date; public class CustomerData { private String FirstName;

i have three classes :

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开发者_如何学JAVA.out.println(cd.getDob());
System.out.println(cd.getTaxId());


  }
}

Output is :

displaying customer Info
null
null
null
null
null
null
null
0


In your method ContrOne.displayInformation() you create a new new CustomerData() object. Thus it is not properly initialized. Maybe you want to pass customerData from your main method to displayInformation?


You are creating a CustomerData object in MainCntrlr class but not passing it to the ContrOne class. ContrOne is creating it's own CustomerData object and printing it's values which are null.

A possible solution could be to change the signature of displayInfo and pass the CustomerData object to this method from MainCntrlr class.

A few other points to note

  1. The class names are confusing. It is not clear why you have created MainCntrlr and ContrOne classes separately.
  2. If all you want is to display Customer information, you may want to override the toString() method in CustomerData class instead.


Your ContrOne.displayInformation() instantiates a new CustomerData() object to cd but never populates fields in it.

If you want your ContrOne to display information, rather do this:

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());
    }
}

and in 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);
}
0

精彩评论

暂无评论...
验证码 换一张
取 消