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) 注解即可
posted @ 2019-10-31 14:16  summaster  阅读(2134)  评论(0编辑  收藏  举报