2017-09-14 126 views
4

我试图写一个通用请求产生方法,该方法将返回不同的对象如下图所示:使用封闭的泛型类的方法返回类型?

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

我想这getNewRequest返回已封闭泛型类对象的对象。

我的getNewRequest方法的签名应该怎么办?

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

回答

4

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

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

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

谢谢您的回答。 –

0

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

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

类似的东西:

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

}