这是思维在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