Object.getClass()返回的那个类的class
但是如果我需要的是返回的带有泛型的呢?
比如我有Page(Userinfo),
Page(Userinfo).getClass()得到的是page.class而已
怎么才能得到Page(Userinfo).class呢?

解决方案 »

  1.   

    补充一下
    我是用在Aop日志管理中的
    因为需要动态的去构造method对象,而传入CLASS中的第二个参数要求和原类的参数的一样。具体的看代码
    String temp = joinPoint.getStaticPart().toShortString();//根据传入对象获得类名
    String classType = joinPoint.getTarget().getClass().getName();
    //根据传入对象获得方法名
    String methodName = joinPoint.getSignature().getName();
    //获得参数的OBJECT数组
    Object[] args = joinPoint.getArgs();//将Object[]转化为Class[] 
    Class[] Parameter = new Class[args.length];
    for (int i = 0; i < args.length; i++) {
    //问题就在这里了,如果不用泛型的话,能正确工作,但是如果有泛型的话,args[i].getClass()得到的是原型,和方法中声明的不一样,自然在下一步构造Method的时候会“没有这个方法”了!
    Parameter[i] = args[i].getClass();
    }
    //构造Class
    Class<?> className = Class.forName(classType);
    //构造Method,这就是我要的东西
    Method method = className.getMethod(methodName, Parameter);
    求高人给予指点迷津,在线恭候!
      

  2.   

    貌似在版里见过
    什么getField来着印象不深刻
    不过我是没用过Generic编程
    不好意思了,楼主