Object.getClass()返回的那个类的class
但是如果我需要的是返回的带有泛型的呢?
比如我有Page(Userinfo),
Page(Userinfo).getClass()得到的是page.class而已
怎么才能得到Page(Userinfo).class呢?
但是如果我需要的是返回的带有泛型的呢?
比如我有Page(Userinfo),
Page(Userinfo).getClass()得到的是page.class而已
怎么才能得到Page(Userinfo).class呢?
我是用在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);
求高人给予指点迷津,在线恭候!
什么getField来着印象不深刻
不过我是没用过Generic编程
不好意思了,楼主