反射可序列化对象列表
-
20-09-2019 - |
题
我问了一个问题: 反映列表对象
实际上,我得到的答案只是想了解为什么什么时候我会击中IllegalargumentException:无法将静态最终arraylist serialversionuid设置为java.lang.long。但是,当我做一个对象时,反射到另一个对象没有错误。
List<ClassB> listB = (List<ClassB>) convert(listA, ArrayList.class);
解决方案
转换方法试图分配最终字段时,它存在问题。我建议您修改转换方法如下。
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