在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ think in java中的關(guān)于集合的問題

think in java中的關(guān)于集合的問題

class Snow{};
class Powder extends Snow{};
class Light extends Powder{};
class Heavy extends Powder{};
class Crusty extends Snow{};
class Slush extends Snow{};
public static void main(String[] args) {
List<Snow> snow1=Arrays.asList(new Crusty(),new Slush(),new Powder(),new Heavy());//編譯通過,Crusty,Powder,Slush是Snow的直接子類

List<Snow> snow2=Arrays.asList(new Light(),new Heavy(),new Powder());//編譯不過,因為元素類型中只有Powder和子類,所以Lsit<Snow>需要修改為List<Powder>
//修改為
List<Snow> snow2=Arrays.asList(new Light(),new Heavy(),new Powder(),new Snow());//編譯通過
List<Powder> snow2=Arrays.asList(new Light(),new Heavy(),new Powder());//編譯通過

//Collections實現(xiàn)
List<Snow> snow3=new ArrayList<Snow>();
        Collections.addAll(snow3, new Light(),new Heavy(),new Slush());//snow3指定了類型
}
}

List<Snow> snow2=Arrays.asList(new Light(),new Heavy(),new Powder());//編譯不過,因為元素類型中只有Powder和子類,所以Lsit<Snow>需要修改為List<Powder>
這句話------為什么編譯不過,我這里可以編譯啊。。。 是jdk版本問題嗎。求解答。。

回答
編輯回答
赱丅呿

jdk1.7和1.8編譯通過

 @SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

jdk1.6編譯不通過

public static <T> List<T> asList(T... a) {
    return new ArrayList<T>(a);
    }
2017年7月13日 01:06
編輯回答
誮惜顏

是版本的問題

2018年3月3日 22:45