有没有办法提供Class
对象作为泛型方法的参数?
例如,我有一个方法:
public <T> Queue <T> getSomething (...)
我有Class
的对象,例如
Class<?> key = ...
有没有办法可以提供key
作为getSomething(...)
方法的通用参数?伪编码的例子是:
Queue<key> queue = object.<key>getSomething(...)
答案 0 :(得分:2)
你不能这样做,因为它没用。
泛型类型参数纯粹是一个编译时类型检查工具。因此,在编译时未知的类型参数是什么意思?你无法说出任何关于它的事情,你将无法用它做任何事情。
答案 1 :(得分:0)
您可以将其作为参数传递,就像任何其他参数一样
Class<T> tClass = ...
Queue<T> queue = object.getSomething(tClass, ...);
答案 2 :(得分:0)
您可以将类对象传递给声明如下的方法:
public <T> Queue<T> getSomething( Class<T> type, ... ) { ... }