Я пытаюсь понять, почему метод addAll () из ArrayList не работает. У меня есть мой класс:
public class XList<E> extends ArrayList<E> {...
}
С помощью метода:
public XList<E> union(XList<E> input) {
System.out.println(this);//
System.out.println(input);
this.addAll(input);
return this;
}
System.out.println указывает, что правильные значения находятся в заданных списках, но после добавления «this» не обновляется и возвращается без изменений. Не могли бы вы подсказать мне, на root проблемы? Любая помощь с благодарностью.
SSCCE:
public class Main {
public static void main(String[] args) {
XList<Integer> list1 = new XList<>(1, 3, 9, 11);
XList<Integer> list2 = XList.of(5, 6, 9);
List<Integer> m1 = list1.union(list2);
System.out.println(m1);
}
}
class XList<E> extends ArrayList<E> {
private List<E> lista;
public XList(E a, E b, E c) {
lista = new ArrayList<>();
lista.add(a);
lista.add(b);
lista.add(c);
}
public XList(E a, E b, E c, E d) {
lista = new ArrayList<>();
lista.add(a);
lista.add(b);
lista.add(c);
lista.add(d);
}
static XList of(Integer a, Integer b, Integer c) {
return new XList(a, b, c);
}
public XList<E> union(XList<E> input) {
System.out.println("this: " + this);
System.out.println("input: " + input);
this.addAll(input);
return this;
}
public String toString() {
return lista.toString();
}