当前位置: 代码迷 >> 综合 >> Lombok toString()方法导致实体类之间调用出现StackOverflowError的问题
  详细解决方案

Lombok toString()方法导致实体类之间调用出现StackOverflowError的问题

热度:89   发布时间:2023-12-18 09:36:15.0

原因是实体类之间互为属性,在调用Lombok自动生成的toString()方法时,导致死循环,出现StackOverflowError的错误,比如

@Data
public class A{private String name;private B b;
}@Data
public class B{private String address;private A a;
}

解决方法:
1.复写Lombok自动生成的toString()方法,去掉互为关联的属性的toString()
2.在关联属性上,使用注解@ToString.Exclude,将其排除在toString()里
3.在类上面使用注解@ToString(exclude={"a",...})排除属性名的属性

  相关解决方案