Java获取当前类泛型T的类型 T.class
2021-08-27 本文已影响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();
}
}