设置其他变量时设置一个类的变量?

时间:2017-08-08 07:33:29

标签: java android performance gson

我从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;
}
}

检索ROW对象的代码

final List<Row> rows = Arrays.asList(gson.fromJson(rowArray.toString(), Row[].class));

我正在尝试在获取列表行后更新

 for (Row row:rows) {
            row.update();
        }

有什么方法可以提高效率吗?

1 个答案:

答案 0 :(得分:0)

我建议你考虑一下 观察者设计模式 。  从简单的定义: 当对象之间存在一对多关系时使用观察者模式,例如,如果修改了一个对象,则会自动通知其依赖对象。 您可以访问此链接,this pattern有一些很好的例子。