异常信息

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) 注解即可

相关文章:

  • 2022-12-23
  • 2021-10-09
  • 2022-02-21
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
  • 2021-06-13
  • 2021-11-01
猜你喜欢
  • 2021-11-27
  • 2021-05-24
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
相关资源
相似解决方案