这是用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版本。
使用Java进行思考的目标是Java 5/6(根据说明)。对于此版本的Java(以及Java 7),此代码段不会使用进行编译javac
。错误是:
不兼容的类型:
java.util.List<Powder>
无法转换为java.util.List<Snow>
使用Java 8,可以很好地进行编译:改进了类型推断系统。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句