我将所有配置存储在一个 xml 文件中,当我加载它们时,我希望每个配置规则都存储在一个配置对象中。
public class Configuration<T> {
private String name;
private T value;
public Configuration(String configName, T value) {
this.name = configName;
this.value = value;
}
public String getName() {
return this.name;
}
public T getValue() {
return this.value;
}
}
在 XML 中,我有一个与每个配置类似的节点:<type>Integer</type>
。
该节点保存配置 T 的通用类型,它将用于值。
当我加载<type>
时节点,我得到一个值为 "Integer"
的字符串。它可以是任何东西,Object,MyClazz,但例如我写了 "Integer"
.
是否可以使用字符串值来初始化类的泛型类型?
即在这种情况下,配置对象将是 Configuration<Integer>
最佳答案
由于类型删除,我认为您的问题没有意义。 Java 泛型仅在编译时存在。在运行时,所有有关泛型类型的信息都会被删除。由于对象实例化仅在运行时发生,因此根本没有泛型参与的空间。
关于java - 使用字符串(文本)传递泛型类型(反射?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24518024/