怎么获取泛型T.class类?
程序员文章站
2022-10-16 14:28:07
如上代码,要调用getA()方法,必须传入一个Class类,使用泛型怎么传递这个Class类呢? 在java里泛型操作还是很麻烦的。例如这种: 但是你直接写在方法上的这种是没办法获取的。 建议你改成如下方式: 像hibernate,fastjson等都是这么反射的,例如: List ......
public <t> void get(list<t> list){ geta(t.class); //报错,不能调用t.class } public void geta(class<?> class){ }
如上代码,要调用geta()方法,必须传入一个class类,使用泛型怎么传递这个class类呢?
在java里泛型操作还是很麻烦的。
例如这种:
class service<k, v> { // 此处的k,v都可以获取 // 多个的时候也一样 } class stringservice extends service<string, integer> { }
但是你直接写在方法上的这种是没办法获取的。
public <t> void get(list<t> list){ geta(t.class); //报错,不能调用t.class }
建议你改成如下方式:
public <e> e get(list<e> list, class<e> clazz) { geta(clazz); return null; } public <e> void get1(list<e> list, class<e> clazz) { geta(clazz); } public void geta(class<?> clazz) { }
像hibernate
,fastjson
等都是这么反射的,例如:
上一篇: ubuntu17.1 WiFi驱动安装
下一篇: MyBatis 常用写法