【发布时间】:2015-07-26 08:57:56
【问题描述】:
类型擦除和类型推断有什么区别?它们都是编译时操作吗?
Type Erasure: 在编译时删除泛型类型信息。
- 示例:
Box<String>被转换为类型Box,称为原始类型。
Type Inference 与 Erasure 类型有何不同?
JDK 7 之前:
Box<String> box=new Box<String>();
从 JDK 7 开始:
Box<String> box=new Box<>();
我猜上面的例子是类型推断。对吗?
Type Inference 是否与Type Erasure 相对?
【问题讨论】:
-
只有您的第二个示例涉及类型推断,并且是最简单的类型。使用 Java 8 中的 lambda,它变得更加复杂。
标签: java generics terminology type-inference type-erasure