1

我问了一个问题:反映一个列表对象

我实际上得到了答案,只是想了解为什么这样做时我会遇到非法ArgumentException:无法将静态最终 ArrayList SerialVersionUID 设置为 java.lang.long。但是当我做一个对象反映到另一个对象时没有错误。

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

1 回答 1

1

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 回答