我有:
public class RestClientResource<T,U> {
}
并想要确定U的班级。
我有这个:
Class<U> uClass =
(Class<U>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
但是它不起作用,大概是因为我有多个通用的参数化类型
如何使它正常工作?
答案 0 :(得分:3)
但是它不起作用,大概是因为我有多个泛型参数化类型
这应该不是问题。
有两件事跳出来:
您实际上需要有一个泛型超类:
getClass().getGenericSuperclass()
设置您的班级abstract
,以使其成为 的子类:
public abstract class RestClientResource<T,U> {
如果要使用U
类,请访问数组的第[1]
个元素:
....getActualTypeArguments()[1]
否则,您将获得T
。