2017-08-08 138 views
-1

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

有什么办法,使之有效后更新?

+0

我这样做和你一模一样,有时候我得到了大约40,000个物体,我还没有看到任何性能问题,即使是低端设备也能很好地工作 –

+0

@YayoArellano谢谢! –

回答

0

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