Riflessione una lista di oggetti che è serializzabile
-
20-09-2019 - |
Domanda
Ho posto una domanda in: riflettere un elenco di oggetti
In realtà ho avuto la mia risposta voglio solo capire perché quando farlo lo farò colpisce IllegalArgumentException: Impossibile impostare statica finale ArrayList serialVersionUID a java.lang.Long. Ma quando faccio un oggetto riflettere a un altro oggetto nessun errore.
List<ClassB> listB = (List<ClassB>) convert(listA, ArrayList.class);
Soluzione
C'è un problema con il metodo Convert quando tenta di assegnare un campo finale. Vi suggerisco di modificare il metodo convertito come segue.
for (Field targetField : targetClass.getDeclaredFields()) {
if (!Modifier.isFinal(targetField.getModifiers())) {
targetField.setAccessible(true);
Field field =
instance.getClass().getDeclaredField(targetField.getName());
field.setAccessible(true);
targetField.set(target, field.get(instance));
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow