2012-09-25 63 views
0

假設我有,例如,通過解析文檔生成的對象數組。這些對象是這樣的:解析後完成對象

Object{ 
    id 
    text 
    anotherProperties 
} 

前兩個屬性(id和text)分析過程中設置的,但現在我想添加其他屬性(附加屬性),不能在分析過程中進行設置,因爲確定它們太複雜,但取決於文本。 如何以優雅的方式實現這一目標? 在Java中? 感謝您的回覆

+0

解析完文檔後,迭代對象的集合並設置值?你來自PHP的是 –

+0

嗎?無需使用字節碼操作就可以在Java中動態創建字段。 – gigadot

+0

@PeterLawrey好吧,我正在循環。我怎麼能停止循環看到對象的文本? 2)我怎麼才能分配一個屬性(意味着調用一個setProperty()方法)? – MartinM

回答

1

或許使用Integer(您的id)鍵和由文本和anotherProperites組成的DocProperites的值的HashMap。

然後當你準備設置anotherProperties時,你可以從HashMap中檢索對象然後設置它。

例如

Map<Integer, DocProperties> map = new HashMap(); 

和DocProperties是

public class DocProperties { 
    private String text; 
    private String anotherProperties; 
    //plus the usual setters, getters and ctor 
} 

然後當你要設置的anotherProperties你可以叫

map.get(key).setAnotherProperties(....); 

如果你想要的東西更動態的,那麼你可以使用另一個HashMap而不是DocProperties。然後,HashMap可以在您解析時添加和刪除鍵。我不會提供這個建議,因爲代碼可能會變得非常混亂和bug纏身。