反射获得model的getId方法,找不到?

public abstract class BaseBrand<M extends BaseBrand<M>> extends Model<M> implements IBean {


public void setId(java.lang.Integer id) {

set("id", id);

}

public java.lang.Integer getId() {

return getInt("id");

}

public class Brand extends BaseBrand<Brand> {

评论区

fansunion

2018-09-11 16:14

Brand brand = new Brand();
ReflectKit.getFieldValue(brand, "id");
ReflectionUtil.getMethod(Brand.class,"getId");
ReflectionUtil.getProperty(brand, "id");
各种方式尝试,都找不到呢?
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.lang3.reflect.MethodUtils.getMatchingMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
at com.vip.vjtools.vjkit.reflect.ReflectionUtil.getMethod(ReflectionUtil.java:76)
at com.jtn.bgj.Test.main(Test.java:15)

fansunion

2018-09-11 16:32

Brand brand = new Brand();
brand.setId(1);
Method method=MethodUtils.getAccessibleMethod(Brand.class, "getId",null);
try {
Object id=method.invoke(brand, null);
System.out.println(id);
} catch (Exception e) {
e.printStackTrace();
} 这种方式可以

fansunion

2018-09-11 16:33

突然想起来了。getMatchingMethod 这个方法可能没有。版本冲突。。。

fansunion

2018-09-11 16:42

事实证明,是个乌龙。
担心有些代码,用的还是common-lang 2.x的,就多配置了1个。VIP tool里面很多工具类,用的都是3.x。
今后统一 只用3.x的。




org.apache.commons
commons-lang3
3.7

热门反馈

扫码入社