انعكاس قائمة الكائنات القابلة للتسلسل
-
20-09-2019 - |
سؤال
لقد طرحت سؤالاً في: تعكس كائن قائمة
لقد حصلت في الواقع على إجابتي فقط أريد أن أفهم لماذا عندما أفعل ذلك ، سأضرب غير شرعي: لا يمكنني تعيين ArrayList Final 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