這是思維在Java中這段代碼爲什麼沒有類型轉換異常?
class Snow {}
class Powder extends Snow {}
class Light extends Powder {}
class Heavy extends Powder {}
class Crusty extends Snow {}
class Slush extends Snow {}
public class AsListInference {
public static void main(String[] args) {
//The book says it won't compile, but actually it does.
List<Snow> snow2 = Arrays.asList(new Light(), new Heavy());
}
}
這裏是我的Java環境:
- Java版本 「1.8.0_60」
- 的Java(TM)SE運行時環境(建1.8。 0_60-b27)
- Java HotSpot(TM)64位服務器虛擬機(版本25.60-b23,混合模式)
因爲不應該有一個。 'Light'和'Heavy'是Snow的子類,因此可以添加到'Snow'的List中。 – hotzst
在Java 7中,此代碼給我一個編譯錯誤 - '類型不匹配:無法從列表轉換爲列表'。 –
Eran