- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如官方教程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/
我正在使用 this solution在二进制矩阵中找到与图像边界对齐的矩形。假设现在我想找到一个不与图像边框对齐的矩形,并且我不知道它的方向;找到它的最快方法是什么? 为了示例,让我们寻找一个仅包含
else: 行在这个 Python 程序中是否正确/必要? from random import randrange for n in range(10): r = randrange(0,1
在 TDPL 7.1.5.1 中讨论了将 Widget w2 分配给 w1 并且作者指出“将 w2 逐个字段分配给 w1 会将 w2.array 分配给 w1.array——一个简单的数组边界分配,而
我是一名优秀的程序员,十分优秀!