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); 
Était-ce utile?

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
scroll top