package com.zjh.test;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao <T>{
public void getType(){
//获取父类类型
Type t = getClass().getGenericSuperclass();
//强制转换为泛型类型
ParameterizedType p = (ParameterizedType) t ;
//获取泛型中类型变量
System.out.println(p.getActualTypeArguments()[0]);
System.out.println(p.getOwnerType());
//获取申明的原始类型,即擦除后的类型
System.out.println(p.getRawType());
}
}
public class SubDao extends BaseDao<String> {
@Test
public void test1(){
getType();
}
}
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao <T>{
public void getType(){
//获取父类类型
Type t = getClass().getGenericSuperclass();
//强制转换为泛型类型
ParameterizedType p = (ParameterizedType) t ;
//获取泛型中类型变量
System.out.println(p.getActualTypeArguments()[0]);
System.out.println(p.getOwnerType());
//获取申明的原始类型,即擦除后的类型
System.out.println(p.getRawType());
}
}
public class SubDao extends BaseDao<String> {
@Test
public void test1(){
getType();
}
}