gpt4 book ai didi

java - 如有必要,插入类型转换以保持类型安全

转载 作者:行者123 更新时间:2023-12-02 10:09:44 25 4
gpt4 key购买 nike

如官方教程generics type erasure ,这个说法让我很困惑。 类型转换插入到底什么时候可能发生?我尝试使用泛型的一些简单用法并使用 javap -c a.class 来检查字节码,但似乎没有按照我的预期插入类型转换。

所谓的重复更多的是关于使用类型转换来确保存在适当的多态性桥接方法,而我想知道第二个语句的确切含义。

Insert type casts if necessary to preserve type safety.

可以举个例子来证明一下吗?

最佳答案

最后我觉得Jon Skeet's answer澄清了困惑。

when generics are used, they're converted into compile-time checks and execution-time casts.

当我们尝试编译a.java并反编译a.class时,我们将看到魔法(编译器帮助自动插入类型转换)。

    List<String> list = new ArrayList<>();
list.add("hell");
out.println(list.get(0));

反编译后:

    ArrayList var3 = new ArrayList();
var3.add("hell");
System.out.println((String)var3.get(0));
<小时/>

Using Legacy Code in Generic Code来自官方通用教程:

... whenever the resulting code isn't type-correct, a cast to the appropriate type is inserted...

关于java - 如有必要,插入类型转换以保持类型安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55084504/

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