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