質問

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

私は実際に私の答えを得ました。なぜこれを行うのかを理解したいだけです。私はIllegalArgumentExceptionにヒットします:静的な最終配列SerialVersionUidをJava.lang.Longに設定できません。しかし、1つのオブジェクトを実行すると、別のオブジェクトに反映されます。エラーなし。

List<ClassB> listB = (List<ClassB>) convert(listA, ArrayList.class); 
役に立ちましたか?

解決

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));
         }
     }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top