【Log历练手册】Lomok StackOverflowError
来源:互联网 发布:php 获取1688商品 编辑:程序博客网 时间:2024/05/17 02:25
解决方式
Lomok 在会自动生成相关代码,但由于Lomok并没有判断循环引用的机制,因此在直接生成相互引用对象的toString方法时,toString方法相互引用。造成循环引用问题。
解决方案可以加
@ToString(exclude = {“忽略属性名”})
分析
最近开始用Lomok,发现这工具的确能提高不少开发效率,但有点荒废了苦练了的快捷键。
@Data相当于集成
@ Getter
@ Setter
@ RequiredArgsConstructor
@ ToString
@ EqualsAndHashCode
Lomok 在会自动生成相关代码,但由于Lomok并没有判断循环引用的机制,因此在直接生成相互引用对象的toString方法时候,会生成如下代码
return "A(field1=" + this.getField1() + ", field2=" + this.getField2() + ")";
假设类A,类B
@Data class A { private int aid; private B b;}@Data class B { private int bid; private A a;}
因此在toString时,调用A.toString()时,实际执行方法如下
public String toString() { return "A(aid=" + this.getAid() + ", b=" + this.getB() + ")";}
this.getB()拼接字符串时实际调用this.getB().toString(),实际执行方法如下
public String toString() { return "B(bid=" + this.getBid() + ", b=" + this.getA() + ")";}
此时,同理调用this.getA().toString()循环引用。
阅读全文
0 0
- 【Log历练手册】Lomok StackOverflowError
- 【Log历练手册】Spring事务管理不能提交异常
- 【Log历练手册】Frame must be terminated with a null octet
- LOG 引起的StackOverflowError
- 历练
- StackOverflowError
- StackOverflowError
- StackOverflowError
- StackOverflowError
- StackOverflowError
- delphi 历练记(一)
- 工作历练-20101019
- PHPer的历练
- PHPer的历练
- 觉知,是一种历练
- 新的历练
- 程序员历练之路
- 人生需历练
- maven 一键上传 jar 包到私服(命令行)
- Mysql聚合函数的使用
- 算法题/数字在排序数组中出现的次数
- 关于unity在android层访问WebView的一点心得
- SIFT特征提取算法
- 【Log历练手册】Lomok StackOverflowError
- poj 2251
- iOS-去掉定位地址中不准确的楼层信息
- 02:计算(a+b)*c的值
- 第121届中国进出口商品交易会(广交会)-第一期会刊(参展商名录)
- 推荐系统老司机的十条经验节选
- 你应该使用Django admin的9个理由
- HDU 1569 方格取数(2) (二分图的最大点权独立集)
- 使用Mybatis Generator时遇到“Exception getting JDBC Driver”?