我正在编写一个将 xml 转换为 Java 对象的反序列化方法。我想动态地执行此操作,并避免编写对特定类型的硬编码引用。
例如,这是我的一门课程的简化版本。
public class MyObject {
public ArrayList<SubObject> SubObjects = new ArrayList<SubObject>();
}
这是该方法的精简版本:
public class Serializer {
public static <T> T fromXml(String xml, Class<T> c) {
T obj = c.newInstance();
Field field = obj.getClass().getField("SubObjects");
//help : create instance of ArrayList<SubObject> and add an item
//help#2 : field.set(obj, newArrayList);
return obj;
}
}
调用此方法将如下所示:
MyObject obj = Serializer.fromXml("myxmldata", MyObject.class);
如果这是一个小问题,请原谅我,因为我是一名学习 Java 的 C# 开发人员。
Thanks!
应该是非常接近的东西:
Object list = field.getType().newInstance();
Method add = List.class.getDeclaredMethod("add",Object.class);
add.invoke(list, addToAddToList);
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)