Tôi đang viết một phương pháp deserialization chuyển đổi xml sang một đối tượng Java. Tôi muốn làm điều này một cách năng động và tránh viết các tham chiếu được mã hóa cứng đến các loại cụ thể.Làm thế nào để tạo một ArrayList <?> và thêm một mục thông qua sự phản chiếu với Java?
Ví dụ: đây là phiên bản đơn giản của một trong các lớp học của tôi.
public class MyObject {
public ArrayList<SubObject> SubObjects = new ArrayList<SubObject>();
}
Đây là một phiên bản rút gọn của phương pháp này:
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;
}
}
gọi method này sẽ trông như thế này:
MyObject obj = Serializer.fromXml("myxmldata", MyObject.class);
tha thứ cho tôi nếu điều này là một vấn đề tầm thường như tôi một nhà phát triển Java của nhà phát triển C#.
Cảm ơn!
Bạn có thể cung cấp ví dụ về tệp XML không? – CookieOfFortune
Điều gì xảy ra nếu subObject được khai báo là một giao diện (chẳng hạn như Danh sách)? –