Réflexion d'une liste d'objets qui est sérialisable
-
20-09-2019 - |
Question
J'ai posé une question: refléter un objet de la liste
En fait, je suis ma réponse veux juste comprendre pourquoi quand faire cela, je frappe IllegalArgumentException: Impossible de définir static ArrayList serialVersionUID à java.lang.Long. Mais quand je fais un objet réfléchir à un autre objet aucune erreur.
List<ClassB> listB = (List<ClassB>) convert(listA, ArrayList.class);
La solution
Il y a un problème avec la méthode de conversion quand il essaie d'attribuer un champ final. Je vous suggère de modifier la méthode de conversion comme suit.
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));
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow