2011-04-04 72 views
0

我有一个类,如:不能访问类字段

class CustomerData{ 
    int ssn; 
int homePhone; 
int officePhone; 
String ProductCode; 
String product; 
String sameAsPrev=null; 
String ProductDescription; 
String ForwardProduct; 

// set/get methods } 


there is a Controller Class: 
------------------------------ 

in a method customerInfoContinue() { 
customerData customerData=new CustomerData(); 
customerData.setSsn(customerForm.getSsn); 
customerData.setHomePhone(cuatomerForm.getHomePhone()); 
. 
. 
. 
. 
customerData.setProductDescription((String)session.getAttribute("Product Description")); 
customerData.setProductDescription((String)session.getAttribute("Forward Product")); 

after setting values Map has been created like this: 
Map<String,CustomerData> customerDataMap=new LinkedHashMap<String,CustomerData>(); 

//setting product code as key 
CustomerDataMap.put(customerForm.getProductCode,customerData); 


} 

和无处不在JSP中,他们已经用这种CustomerDataMap。现在


的问题是: 我必须要改变CustomerData类与Customer类。

但在Customer class 2字段中ProductDescription和ForwardProduct不可用。客户类也是一个jar文件,所以我不能更改字段。

请咨询东西如何摆脱这个问题..

回答

0

您不能动态字段添加到现有的类。您需要编辑源代码,或让上游开发人员知道您需要更改哪些内容。

1

如果您不能更改jar中的类,但可以更改控制器,那么可以创建自己的Customer类来扩展CustomerData类。但是,这一切当然取决于这个班级的用途。

public class Customer extends CustomerData { 

    private String ProductDescription; 
    private String ForwardProduct; 

    // add getters and setters 

} 
+0

感谢您的回复Bjorn.but我需要替换CustomerData类。所以不允许扩展customerData。 – kmme 2011-04-04 11:53:13

+0

那么我想你没有别的选择,只能确保班级在罐子里更新。 – 2011-04-04 12:12:20