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

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
Зарегистрируйся сейчас
или Подпишись на будущие тесты