gpt4 book ai didi

java - 为什么这段代码没有类型转换异常?

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:42 25 4
gpt4 key购买 nike

这是来自 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 环境:

  1. Java 版本“1.8.0_60”
  2. Java(TM) SE 运行时环境(build 1.8.0_60-b27)
  3. Java HotSpot(TM) 64 位服务器虚拟机(build 25.60-b23,混合模式)

最佳答案

其实这本书是对的。这里的区别是 Java 版本。

Thinking in Java目标是 Java 5/6(如封面所示)。对于此版本的 Java(以及 Java 7),该代码片段不会使用 javac 进行编译。 .错误是:

incompatible types: java.util.List<Powder> cannot be converted to java.util.List<Snow>

在 Java 8 中,编译得很好:类型推断系统得到了改进。

关于java - 为什么这段代码没有类型转换异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33185826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com