Надеюсь, вы делаете это для тренировки? Если нет, тогда используйте какую-нибудь библиотеку с открытым исходным кодом, это намного сложнее, чем вы думаете - проверьте это .
Ваша проблема в том, что вы добавляете в список to
, а to
list - это реализация, которая не поддерживает добавление (кстати, вы игнорируете результат). Я предлагаю создать новый список и переназначить его вместо добавления к существующему.
List list = (List) fromField.get(from);
List list1 = (List) toField.get(to);
List newList = new ArrayList();
if(list != null)
Collections.addAll(newList,list);
if(list1 != null)
Collections.addAll(newList,list1);
toField.set(to, newList);
Аналогичная вещь с Set
- ваш текущий код для Set
не имеет никакого смысла, он работает по Class
объектам.