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

时间:2014-07-01 19:39:16

标签: java generics

我将所有配置存储在xml文件中,当我加载它们时,我希望每个配置规则都存储在Configuration对象中。

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"

是否可以使用String值初始化类的泛型类型?

,即在这种情况下,Configuration对象将是Configuration<Integer>

1 个答案:

答案 0 :(得分:0)

我认为由于类型擦除,你的问题没有意义。 Java Generics仅在编译时存在。在运行期间,将删除有关泛型类型的所有信息。由于您的对象实例化仅在运行时发生,因此根本没有空间可以输入图片。