1

で質問しました:リスト オブジェクトを反映する

私は実際に私の答えを得ました。これを行うと、なぜこれを行うと illegalArgumentException にヒットするのかを理解したいだけです: Can not set static final ArrayList SerialVersionUID to java.lang.long. しかし、あるオブジェクトを別のオブジェクトに反映すると、エラーは発生しません。

List<ClassB> listB = (List<ClassB>) convert(listA, ArrayList.class); 
4

1 に答える 1

1

最終フィールドを割り当てようとするときに convert メソッドに問題があります。convert メソッドを次のように変更することをお勧めします。

    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));
         }
     }
于 2010-01-13T11:38:07.660 に答える