Java泛型父类取得子类的泛型参数T的Class类型

2019-03-19 19:56|来源: 网路

Java泛型父类取得子类的泛型参数T的Class类型,主要使用Class类的getGenericSuperclass方法,获取getActualTypeArguments[0]


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();
	}
}


转自:http://happyqing.iteye.com/blog/2228574


相关问答

更多