发现了 lombok 一个奇怪的 bug

2023-04-25 15:11:44 +08:00
 mohulai

@Getter @Setter public class BarChart { public List xLines; public List yLines; } 就一个简单的 List 类

GetMapping(XXX) public Result getData(){ BarChart barChart=new BarChart(); barChart.set(XXXX); barChart.set(YYYY); Result result=new Result(); result.setResult(barChart); return result; }

预期返回的结果是 xLines[],yLines[]。断点打在最后一行也可以看到 result 结果是正确的。 结果 postmanceshi 就变成了 xLines[],yLines[],xLines[],yLines[]。重复了一遍。

折腾了半天,最后请教老师傅,他把 lombok 去掉,结果就好了……

他猜是 lombok 不适合序列化,我记得以前一直用 lombok 也没遇到序列化的问题,何况这次的场景这么简单。

559 次点击
所在节点    问与答
2 条回复
MoonWalker
2023-04-25 15:19:35 +08:00
只能说老师傅能这样猜,着实有点不"老师傅",原因是你既把成员变量定义 public ,并且又加了 @getter @setter
mohulai
2023-04-25 15:25:45 +08:00
@MoonWalker 卧槽 我可能是犯邪了。我无论如何,也没想过,自己会把属性设置成 public ,看了一遍又一遍,也没发现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/935372

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX