Pergunta

Eu fiz uma pergunta em: refletir um objeto de lista

Na verdade, recebi minha resposta, só quero entender por que quando isso vou acertar ilegalArgumentException: não posso definir o Arraylist SerialVersionUID de estático para java.lang.long. Mas quando eu faço um objeto refletindo para outro objeto sem erro.

List<ClassB> listB = (List<ClassB>) convert(listA, ArrayList.class); 
Foi útil?

Solução

Há um problema com o método de convertido quando ele tenta atribuir um campo final. Eu sugiro que você modifique o método de convertido da seguinte maneira.

    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));
         }
     }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top