import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test; abstract class BaseDao<T> { public void getType() { //Class<E> clazz = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; Type t = getClass().getGenericSuperclass(); ParameterizedType p = (ParameterizedType) t ; Class<T> c = (Class<T>) p.getActualTypeArguments()[0]; System.out.println(c.getName()); //java.lang.String } } public class SubDao extends BaseDao<String> { @Test public void test1() { getType(); } }
Java父类取得子类传递的泛型参数Class类型
猜你喜欢
转载自happyqing.iteye.com/blog/2228574
今日推荐
周排行