我正在编写一个将xml转换为Java对象的反序列化方法。我想动态地做到这一点,并避免编写特定类型的硬编码引用。如何实例化ArrayList >并通过Java反射添加项目?
例如,这是我的一个类的简化版本。
public class MyObject {
public ArrayList SubObjects = new ArrayList();
}
下面是该方法的一个精简版:
public class Serializer {
public static T fromXml(String xml, Class c) {
T obj = c.newInstance();
Field field = obj.getClass().getField("SubObjects");
//help : create instance of ArrayList and add an item
//help#2 : field.set(obj, newArrayList);
return obj;
}
}
调用此方法应该是这样的:
MyObject obj = Serializer.fromXml("myxmldata", MyObject.class);
原谅我,如果这是一个很重要的问题,因为我一位学习Java的C#开发人员。
谢谢!
+0
你能提供一个XML文件的例子吗? –
2009-07-07 16:48:05
+0
如果subObjects被声明为接口(如List)会怎么样? –
2009-07-07 19:29:22