invoke 时实际参数为 Map<String,String> x = new HahsMap();java 反射
声明成 public void _preDoEdit(HashMap<String, String> sqlMap) 可以调用
声明成 public void _preDoEdit(Map<String, String> sqlMap) 不能调用,
是啥情况求高手指点一下
声明成 public void _preDoEdit(HashMap<String, String> sqlMap) 可以调用
声明成 public void _preDoEdit(Map<String, String> sqlMap) 不能调用,
是啥情况求高手指点一下
invoke()方法里面的对像是代理对象的本生,而不是他的超类
举例:
Class A
Class B extends A
你要反射B的就不能用A去代理
况且Map是接口
method = c.getDeclaredMethod(callbackFun,ca);
提示没有找到方法 ca 是一个 java.util.HashMap
callbackFun 有一个参数,声明的是 x(Map) 我是没明白他为啥会找不到方法了
Class a;
a.getDeclaredMethod(callbackFun,ca);callbackFun是a的一个方法名称ca就是该方法的参数列表对应的值
boolean isAssignableFrom(Class<?> cls)
判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。 类似情况若方法重载的时候还是不行。