class A<T>{
public T get(){return null;}
public String get(){return null;}
}A<String> a = new A<String>();
Class clz = a.getClass();
Method m = clz.getDeclareMethods()[0];//貌似下面这两个都不行
System.out.println(m.getReturnType());
System.out.println(m.getGenericReturnType());要怎么样才能拿到正确的返回类型(String)呢?

解决方案 »

  1.   

    没有问题啊。
    下面是你的代码:
    import java.lang.reflect.Method;class OverType<T> {
    public T getT() {
    return null;
    } public String getType() {
    return null;
    }}public class Over {
    public static void main(String[] args) {
    OverType<String> a = new OverType<String>();
    Class clz = a.getClass();
    Method m = clz.getDeclaredMethods()[0]; // 貌似下面这两个都不行
    System.out.println(m.getReturnType());
    System.out.println(m.getGenericReturnType());
    }
    }
      

  2.   

    Method m = clz.getDeclaredMethods()[0]; 
      

  3.   

    在做Hibernate一个通用的分页时用到了类型,你说的那一个还不太清楚
      

  4.   

    public T get(){return null;} 
    public String get(){return null;} 
    这不报错?????
    方法相同 参数相同 ,返回不同 是错的吧