- 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
等都是这么反射的,例如: