将Class对象作为通用参数提供

时间:2013-05-31 21:33:11

标签: java generics

有没有办法提供Class对象作为泛型方法的参数?

例如,我有一个方法:

public <T> Queue <T> getSomething (...)

我有Class的对象,例如

Class<?> key = ...

有没有办法可以提供key作为getSomething(...)方法的通用参数?伪编码的例子是:

Queue<key> queue = object.<key>getSomething(...)

3 个答案:

答案 0 :(得分:2)

你不能这样做,因为它没用。

泛型类型参数纯粹是一个编译时类型检查工具。因此,在编译时未知的类型参数是什么意思?你无法说出任何关于它的事情,你将无法用它做任何事情。

答案 1 :(得分:0)

您可以将其作为参数传递,就像任何其他参数一样

Class<T> tClass = ...
Queue<T> queue = object.getSomething(tClass, ...);

答案 2 :(得分:0)

您可以将类对象传递给声明如下的方法:

public <T> Queue<T> getSomething( Class<T> type, ... ) { ... }