【发布时间】:2016-01-16 02:42:00
【问题描述】:
这是来自Thinking in 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 位服务器 VM(内部版本 25.60-b23,混合模式)
【问题讨论】:
-
因为不应该有一个。
Light和Heavy是 Snow 的子类,因此可以添加到List的Snow中。 -
在 Java 7 中,这段代码给了我一个编译错误 -
Type mismatch: cannot convert from List<Powder> to List<Snow>。
标签: java