2012-09-25 60 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缠身。