java - 使用字符串(文本)传递泛型类型(反射?)

标签 java generics

我将所有配置存储在一个 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/

相关文章:

java - 使用静态比较器对 BSTree 进行排序

java - 在 Appium 中的亚马逊应用程序中切换上下文

java - PriorityQueue 正在移除最后添加的元素(就像后进先出)

c# - 如何使用表达式和/或反射获取常量名称?

c# - 与 Func<in T1, out TResult> 作为参数的协变/逆变

java - 不寻常的通用语法 : Arrays. <String>asList(...)

java - License Maven Plugin更改第三方的许可证名称

java - 通过java调用外部程序

java - groovy 中 java 类的 metaClass 属性

Typescript - 将泛型类型 'not assignable' 绑定(bind)到扩展类型的函数