首页 > 解决方案 > 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 并在任何地方进行强制转换?

标签: javagenerics

解决方案


类型擦除。第二个。从字面上看,替换TObject它会根据需要插入演员表。


推荐阅读