Class.getGenericSuperclass
getGenericSuperclass()方法用于获得实例类的带有泛型的直接父类,和getSuperclass()用在不同的情景。
getClass().getGenericSuperclass()返回的是java.lang.refelct.Type类型,可以将其转换成ParameterizedType。
(ParameterizedType) getClass().getGenericSuperclass()。
ParameterizedType是Type的子接口。用于获取java泛型参数类型。
public interface ParameterizedType extends Type
ParameterizedType type = (ParameterizedType) getClass().getGenericSuperclass();
Type []types = type.getActualTypeArguments();
types存的是泛型参数列表。
types[0]表示第一个泛型参数类型。可以将其转换成Class。
Class class = (Class)types[0];
entityClass = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
getGenericSuperclass()方法用于获得实例类的带有泛型的直接父类,和getSuperclass()用在不同的情景。
getClass().getGenericSuperclass()返回的是java.lang.refelct.Type类型,可以将其转换成ParameterizedType。
(ParameterizedType) getClass().getGenericSuperclass()。
ParameterizedType是Type的子接口。用于获取java泛型参数类型。
public interface ParameterizedType extends Type
ParameterizedType type = (ParameterizedType) getClass().getGenericSuperclass();
Type []types = type.getActualTypeArguments();
types存的是泛型参数列表。
types[0]表示第一个泛型参数类型。可以将其转换成Class。
Class class = (Class)types[0];
entityClass = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];