天天看点

java反射接口实现类_Java反射:从实现类中获取通用接口的类型参数

通过通用接口解析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>.