import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao {
public void getType() {
//Class clazz = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
Type t = getClass().getGenericSuperclass();
ParameterizedType p = (ParameterizedType) t ;
Class c = (Class) p.getActualTypeArguments()[0];
System.out.println(c.getName());//java.lang.String
}
}
public class SubDao extends BaseDao {
@Test
public void test1() {
getType();
}
}