设置其他变量时设置一个类的变量?
问题描述:
我从json文件中检索数据并使用gson将其转换为POJO类。 我有两个变量“instancename”和“instanceid”,我没有从json响应中获得。所以我必须设置当我列出“列”值。设置其他变量时设置一个类的变量?
public class Row implements Serializable{
@SerializedName("ElementInstanceID")
@Expose
private String elementInstanceID;
@SerializedName("Columns")
@Expose
@Ignore
private List<String> columns = null;
private String roominstancename;
private int roominstanceid;
public Row(){
Log.d("ROW","1");
update();
}
public String getRoominstancename() {
return roominstancename;
}
public void setRoominstancename(String roominstancename) {
this.roominstancename = roominstancename;
}
public int getRoominstanceid() {
return roominstanceid;
}
public void setRoominstanceid(int roominstanceid) {
this.roominstanceid = roominstanceid;
}
public String getElementInstanceID() {
return elementInstanceID;
}
public void setElementInstanceID(String elementInstanceID) {
this.elementInstanceID = elementInstanceID;
}
public List<String> getColumns() {
return columns;
}
public void setColumns(List<String> columns) {
this.columns = columns;
setInstance(columns);
}
public void setInstance(List<String> columns){
setRoominstancename(columns.get(0));
setRoominstanceid(Integer.parseInt(columns.get(1)));
}
public void update(){
if (columns != null && columns.size() >= 0){
setInstance(columns);
}
}
@Override
public String toString() {
return "Element ID"+elementInstanceID;
}
}
密码来检索行对象
final List<Row> rows = Arrays.asList(gson.fromJson(rowArray.toString(), Row[].class));
我想我得到列表行
for (Row row:rows) {
row.update();
}
有什么办法,使之有效后更新?
答
我建议你考虑 观察者设计模式。 从简单定义: 当对象之间存在一对多关系时使用观察者模式,例如,如果修改了一个对象,则会自动通知其相关对象。 您可以访问此链接,this pattern有一些很好的例子。
我这样做和你一模一样,有时候我得到了大约40,000个物体,我还没有看到任何性能问题,即使是低端设备也能很好地工作 –
@YayoArellano谢谢! –