Java获取泛型的Class对象

来源:互联网 发布:linux修改开机启动项 编辑:程序博客网 时间:2024/04/28 05:48
工作中瞄到的,在此收集了
public class RawDao<T> {    protected Class<T> clazz;    @SuppressWarnings("unchecked")    public RawDao() {        @SuppressWarnings("rawtypes")        Class clazz = getClass();        while (clazz != Object.class) {            Type t = clazz.getGenericSuperclass();            if (t instanceof ParameterizedType) {                Type[] args = ((ParameterizedType) t).getActualTypeArguments();                if (args[0] instanceof Class) {                    this.clazz = (Class<T>) args[0];                    break;                }            }            clazz = clazz.getSuperclass();        }    }