リフレクションシリアル化可能なオブジェクトのリスト
-
20-09-2019 - |
質問
私は質問をしました: リストオブジェクトを反映します
私は実際に私の答えを得ました。なぜこれを行うのかを理解したいだけです。私は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));
}
}
所属していません StackOverflow