使用封闭的Generic类的方法返回类型?

时间:2017-09-14 07:14:23

标签: java generics

我正在尝试编写一个通用请求生成器方法,它将返回如下所示的不同对象:

GenricClass<Object1> genCls1 = getNewRequest(Object1.class);
GenricClass<Object2> genCls2 = getNewRequest(Object2.class);
GenricClass<Object3> genCls3 = getNewRequest(Object3.class);

我希望这个getNewRequest返回一个包含泛型类对象的对象。

我的getNewRequest方法的签名应该如何?

public `?` getNewRequest(Class classtype) {...}

3 个答案:

答案 0 :(得分:4)

您可以在包含方法getNewRequest的类中声明泛型类型参数,也可以直接在方法中声明。

例如,在方法T中声明泛型参数getNewRequest

public <T> GenricClass<T> getNewRequest(Class<T> classtype)

答案 1 :(得分:0)

使用T的classType实例作为参数并返回相同类类型的GenericClass。有点像:

public GenericClass<T> getNewRequest(T classtype) { 
}

答案 2 :(得分:0)

类似的东西:

public <T> GenericClass<T> getNewRequest(Class<T> classtype) {

}