美文网首页
Java获取当前类泛型T的类型 T.class

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

作者: 我要进大厂 | 来源:发表于2021-08-27 20:19 被阅读0次

    这个处于我想拿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();
        }
    }
    

    相关文章

      网友评论

          本文标题:Java获取当前类泛型T的类型 T.class

          本文链接:https://www.haomeiwen.com/subject/ygxviltx.html