通过通用接口解析T的类型.例如.
public interface SomeInterface {
}
public class SomeImplementation implements SomeInterface {
public Class getGenericInterfaceType(){
Class clazz = getClass();
ParameterizedType parameterizedType = (ParameterizedType) clazz.getGenericInterfaces()[0];
Type[] typeArguments = parameterizedType.getActualTypeArguments();
Class> typeArgument = (Class>) typeArguments[0];
return typeArgument;
}
}
public static void main(String[] args) {
SomeImplementation someImplementation = new SomeImplementation();
System.out.println(someImplementation.getGenericInterfaceType());
}
PS:请记住,acutalTypeArguments的类型为Type.他们不能是一个阶级.在您的情况下,它是一个类,因为您的类型定义是EventHandler< MyEvent>.