0

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

例如,我有一个方法:

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

我有一个对象Class,例如

Class<?> key = ...

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

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

3 回答 3

2

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

泛型类型参数纯粹是一种编译时类型检查工具。因此,在编译时未知的类型参数有什么意义?你将无法对它说任何话,也无法对它做任何事情。

于 2013-06-01T20:29:53.513 回答
0

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

Class<T> tClass = ...
Queue<T> queue = object.getSomething(tClass, ...);
于 2013-05-31T21:35:45.623 回答
0

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

public <T> Queue<T> getSomething( Class<T> type, ... ) { ... }
于 2013-05-31T21:36:13.767 回答