我有一组对象(Parent)。对于特定条件,我想向该对象添加额外数据。所以我创建了一个从父级扩展的子类,将数据放到子级并将其放回父级集。从理论上讲,这是可能的。但这样做的好方法是什么?请建议我任何其他更好的方法。
另一种方法是创建一组Child而不是Parent。直接将数据放入子项。但我不能这样做,因为父集将转换为Json,并且所有Parent对象都不需要多余的字段。
final LinkedHashSet<Parent> parentSet = new LinkedHashSet<Parent>();
parentSet.add(new Parent("AAA"));
parentSet.add(new Parent("ABC"));
parentSet.add(new Parent("DXX"));
parentSet.add(new Parent("GHI"));
final LinkedHashSet<Parent> childSet = new LinkedHashSet<Parent>();
final Iterator<Parent> iterator = parentSet.iterator();
while (iterator.hasNext()) {
final Parent parent = iterator.next();
if (parent.str.startsWith("A")) {
iterator.remove();
childSet.add(new Child(parent.str, 27));
}
}
parentSet.addAll(childSet);
答案 0 :(得分:2)
您希望在孩子之间共享的数据应放在父级中。如果这个孩子有这个方法,如果你想出一个BadChild类,你现在只有一个子类?我必须建议的最佳做法是认为这是一个真实世界的例子。
例如,父母必须知道孩子的确切身高吗?孩子必须知道父母的确切年龄吗?
答案 1 :(得分:0)
是的,这是一个好方法,除非你没有进行任何转换以达到Child
实例。如果您需要对Child
课程执行任何特殊操作,请向Parent
课程添加方法,然后覆盖它。