实例化泛型类

时间:2014-11-07 02:05:44

标签: java generics

我有一个看起来像这样的课程:

public class Entry<Key,Value> {

    private Key k;
    private Value v;

    public Entry(Key k , Value v)
    {
        this.k = k;
        this.v = v;
    }

    public Key getKey()
    {
        return k;
    }

    public Value getValue()
    {
        return v;
    }

}

我正在尝试在应用程序运行时实例化此类的实例。我的程序运行时只知道Key和Value的类类型。例如,我只知道Key和Value类类型是String.class和Integer.class。有没有办法用这些信息实例化一个条目?如果没有,我该怎么做才能动态创建条目?

谢谢!

1 个答案:

答案 0 :(得分:2)

程序就像

String key = getFromSomewhere();
Integer value = someMethodResult();

表示您在编译时知道的类型优于Object。所以你可以做到

Entry<String,Integer> entry = new Entry<String,Integer>(key, value);

也是。没有&#34;在运行时不知道类型&#34;,您将始终知道实例至少为Object,并且您也可以在泛型类中使用这些实例。您不需要使用具体的运行时类型。