java - java泛型代码是否在运行时为每种使用的类型复制或java使用类型转换?
问题描述
我正在阅读关于 Rust 中的单态化是如何工作的,java 是否以同样的方式工作。
假设我创建了下面的文件。
public class DummyDTO<T> {
T data;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
并使用new DummyDTO<Integer>()
&new DummyDTO<Float>()
将 java 编译器为每个文件创建两个不同的文件,Integer 和 Float 或者它将简单地替换T
为 Object 并在任何地方进行强制转换?
解决方案
类型擦除。第二个。从字面上看,替换T
为Object
它会根据需要插入演员表。
推荐阅读
- database - 可以拆分数据库中的值和参数吗
- android - 如何从多个活动中调用单个服务?
- facebook - 批准 Facebook 上的应用程序需要多长时间?
- angular - 访问 json 中的数组对象以在 Angular 5 中显示下拉值
- visio - 向现有组添加形状会在 MS visio 中引发异常
- colors - lstlisting 代码是蓝色而不是黑色 - 关键字样式接管?
- php - 使用 PHP 从 JSON 数组中获取值
- html - 如何将 HTML 添加到文本中并将其添加到 DOM 以显示它?
- java - 无法将模型对象添加到“/”中的 jsp 视图,但相同的方法正在调用 /index
- android - 如何在firebase数据库中搜索一对