今天在写代码的时候需要对一个实体反射获取到属性值,实体是用了lombok的@Data注解
然后反射方法:
public static Object invokeGetMethod(Object obj, String property) {
Class<?> clazz = obj.getClass();
try {
if (obj instanceof Map) {
return ((Map) obj).get(property);
}
PropertyDescriptor pd = new PropertyDescriptor(property, clazz);
Method getMethod = pd.getReadMethod();
return getMethod.invoke(obj);
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
发现无法获取到属性值,会报错说setArticleId方法不存在。
因为lombok是在编译的时候注解,运行时没有,反射拿不到