반사 직렬화 가능한 물체 목록
-
20-09-2019 - |
문제
나는 다음과 같이 질문했다 : 목록 개체를 반영합니다
나는 실제로 내 대답을 얻었는데, 왜 이렇게하는 이유를 이해하고 싶다. 그러나 한 객체를 수행하면 다른 객체에 오류가 없습니다.
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