Java获取当前类泛型T的类型 T.class

这个处于我想拿T.class去将jdbc查询出来的ResultSet的每列数据 ,通过反射set到T对象对应的成员变量里面。

第一种方式:构造器传入T.class

public class GenericType<T> {

    public Class<T> class2;

    public GenericType(Class<T> class2) {
        this.class2 = class2;
    }

    public void useGenericType() {
             System.out.println(class2);
    }

    public static void main(String[] args) {
        GenericType<String> stringGenericType = new GenericType<>(String.class);
        stringGenericType.useGenericType();
    }
}  

第二种方式:通过继承 + 反射获取

我这里用了匿名内部类继承

public abstract class GenericType2<T> {

    public Class<T> class2;

    public Class<T> getTClass() {
        class2 = (Class<T>) ((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        return class2;
    }

    public void useGenericType() {
        System.out.println(getTClass());
    }

    public static void main(String[] args) {
        //  new GenericType2<String>() {}; 匿名内部类
        GenericType2<String> stringGenericType = new GenericType2<String>() {};
        stringGenericType.useGenericType();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容