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

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() работает нормально, потому что целевой тип определяется первым аргументом.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes