Какой будет результат компиляции и выполнения следующего кода?

import java.util.*;

class A {}
class B  extends A {}
class B1 extends A {}
class B2 extends A {}
class C1 extends B {}
class C2 extends B {

public class AsListInt {
    public static void main(String[] args) {
1.        List<A> list1 = Arrays.asList(new B(), new B1(), new B2());
2.        List<A> list2 = new ArrayList<A>();
3.        Collections.addAll(list2, new C1(), new C2());
4.        List<A> list3 = Arrays.asList(new C1(), new C2());
    }
}
Explanation
При попытке создания list3 Arrays.asList() создает List<B> вместо List<A>, тогда как Collections.addAll() работает нормально, потому что целевой тип определяется первым аргументом.

Слідкуй за CodeGalaxy

Мобільний додаток Beta

Get it on Google Play
Зворотній Зв’язок
Продовжуйте вивчати
тести з Java
Cosmo
Зареєструйся Зараз
або Підпишись на майбутні тести