我正在尝试将属性值作为数组获取,以便使用它们在PDF文件中显示某些数据。当我尝试这样的东西时,所有属性值都等于null。
Product p = new Product("989-ST", "Magazine Vogue");
System.out.println(p.getData().length);
for(String e : p.getData()){
System.out.print(e + " ");
}
//--Output:: 2
//--null null
我的Prdocut课程就像:
Public class Product {
private String sku;
private String descripcion;
public Product() {
}
public Product(String sku, String descripcion) {
sku = this.sku;
descripcion = this.descripcion;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getSku() {
return sku;
}
public void setSku(String sku) {
this.sku = sku;
}
public String[] getData() {
String[] data = { this.descripcion, this.sku };
return data;
}
}
我错过了什么吗?因为当我使用setter设置属性值时,我可以得到预期的值:
Product p = new Product();
p.setSku("989-ST");
p.setDescription("Magazine Vogue");
System.out.println(p.getData().length);
for(String e : p.getData()){
System.out.print(e + " ");
}
//--Output:: 2
//--989-ST Magazine Vogue
答案 0 :(得分:1)
构造函数中的赋值语句必须颠倒过来:
this.sku = sku;
this.descripcion = descripcion;
否则你会将字段值(为空)分配给局部变量。
答案 1 :(得分:1)
您已撤销作业,并且您的课程sku和描述成员未正确初始化。您的构造函数应该看起来像
public Product(String sku, String descripcion) {
this.sku = sku;
this.descripcion = descripcion;
}
答案 2 :(得分:0)
你的构造函数必须是
public Product(String sku, String descripcion) {
this.sku = sku;
this.descripcion = description;
}
您必须将提供给构造函数的值作为参数设置为当前类范围内的变量。