Sto scrivendo un metodo di deserializzazione che converte xml in un oggetto Java. Mi piacerebbe farlo dinamicamente ed evitare di scrivere riferimenti codificati su tipi specifici.Come istanziare un ArrayList <?> e aggiungere un elemento tramite riflessione con Java?
Ad esempio questa è una versione semplificata di una delle mie classi.
public class MyObject {
public ArrayList<SubObject> SubObjects = new ArrayList<SubObject>();
}
Ecco una versione ridotta del metodo:
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;
}
}
chiamata a questo metodo sarebbe simile a questa:
MyObject obj = Serializer.fromXml("myxmldata", MyObject.class);
perdonatemi se questo è un problema banale come lo sono io uno sviluppatore C# che apprende Java.
Grazie!
Potete fornire anche un esempio del file XML? – CookieOfFortune
Cosa succede se subObjects è dichiarato come interfaccia (come ad esempio un elenco)? –