bug:IntrospectionException-Method not found异常与lombok

异常信息

java.beans.IntrospectionException: Method not found: setName
    at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:111)
    at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:71)

场景

  • 使用 new PropertyDescriptor(propertyName, clazz); 反射获取属性描述对象
  • 实体类使用了 lombok
    <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency>

原因

  • 原因在于实体类使用了 @Accessors(chain = true) 注解
  • 该注解使得对象的 setter 方法返回对象本身,以便链式使用
  • new PropertyDescriptor(propertyName, clazz); 要求 setter 返回值为 void
  • 解决:去掉 @Accessors(chain = true) 注解即可

猜你喜欢

转载自www.cnblogs.com/noodlerkun/p/11770908.html