List<String> hi = Collections.nCopies(10, "Hi");
List<String> are = Collections.nCopies(10, "Are");
hi.addAll(are);
hi.forEach(System.out::println);
输出
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractCollection.addAll(Unknown Source)
at com.practice.java8.lambdaexp.Test.main(Test.java:14)
我认为JDK中没有实现AbstractList.add()方法,所以它不能工作。
但是,如果我使用CopiesList对象创建一个新的ArrayList对象,它会工作,因为它将有适当的add()实现。
我的问题是:为什么CopiesList没有适当的addAll()实现?