(继承方式)反射获取泛型类的类型和对象

来源:互联网 发布:网络安全教育听后感 编辑:程序博客网 时间:2024/05/19 17:24

1.工具类,用于获取泛型类的类型和对象

public abstract class FatherReflectUtils<T> {    public T getTInstance() throws InstantiationException, IllegalAccessException {        Type sType = getClass().getGenericSuperclass();        Type[] generics = ((ParameterizedType) sType).getActualTypeArguments();        Class<T> mTClass = (Class<T>) (generics[0]);        return mTClass.newInstance();    }    public Class<T> getTClass() throws InstantiationException, IllegalAccessException {        Type sType = getClass().getGenericSuperclass();        Type[] generics = ((ParameterizedType) sType).getActualTypeArguments();        Class<T> mTClass = (Class<T>) (generics[0]);        return mTClass;    }}
2.工具子类,继承这个父类,传入泛型的真实类型

public class SonReflectUtils extends FatherReflectUtils<NewsBean> {}

3.使用,即可获取真实类型和对象,可以通过打印日志来验证

SonReflectUtils j = new SonReflectUtils();try {    j.getTClass();
    j.getTInstance();
} catch (java.lang.InstantiationException e) { e.printStackTrace();} catch (IllegalAccessException e) { e.printStackTrace();}

阅读全文
0 0
原创粉丝点击