Я искал, как скопировать данные объекта суперкласса в подкласс.BeanUtils.copyProperties (подкласс, суперкласс) возвращает null для значений поля подкласса
Обнаружена эта нить How to copy superclass object values to subclass object values?, которая ссылается на другую тему, которая говорит использовать BeanUtils.copyProperties.
Я использовал приведенный выше код
BeanUtils.copyProperties(subclass,superclass);
, но когда я пытаюсь напечатать значения из подкласса, я получаю нуль для значений
this.face = new FaceData[faces];
this.f = new FaceSubData[faces];
for(int i = 0; i < faces; i++)
{
this.face = //somevalue
this.f[i] = new FaceSubData();
try
{
BeanUtils.copyProperties(f[i], face[i]);
System.out.println(f[i].x);
}
catch (IllegalAccessException | InvocationTargetException ex)
{
Logger.getLogger(PlanHead.class.getName()).log(Level.SEVERE, null, ex);
}
если я печатаю е [я] .x I get null, но если я сталкиваюсь с [i] .x, я получаю все значения.
В основном подкласс получает все значения из суперкласса и добавляет несколько дополнительных бит данных, с которыми мне нужно работать.
Я делаю что-то неправильно ...?
Кроме того, в цикле есть точка, если последнее и текущее значение массива совпадают, тогда мне нужно только скопировать свойства из предыдущего подкласса в текущий подкласс. Мне любопытно, если это будет скопировать все свойства или только некоторые из самого подкласса? Я бы все взял, но из вопроса сейчас я не уверен ...
Спасибо.
Но зачем вам нужны специальные методы для копирования значений суперкласса для значений объекта подкласса? Они автоматически наследуются подклассом, если не объявлены частными. – SacJn
Как скопированы значения? Приведите пример, пожалуйста. – XaolingBao