首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lombok自动删除getter-getter?

使用lombok自动删除getter-getter?
EN

Stack Overflow用户
提问于 2019-01-06 03:48:32
回答 3查看 1.7K关注 0票数 3

我有一个项目。我不使用Lombok。我使用手动创建的getter和setter。

现在,我想导入Lombok。在我导入之后,我将使用for all entities。

我必须手动将@Data添加到所有实体吗?我必须手动删除所有实体吗?没有其他方法可以自动转换这些类了吗?

我找不到任何这样的问题:

https://www.google.com/search?q=lombok+automatic+remove+getter+site:stackoverflow.com&num=100&safe=off&sa=X&ved=2ahUKEwjXyqKT39bfAhXysYsKHWw4Ah0QrQIoBDAKegQIPxAM&biw=1497&bih=762

EN

回答 3

Stack Overflow用户

发布于 2019-01-06 15:20:47

由于一个实体平均可能有十个字段,因此每个类需要删除大量的文本。使用标准格式和方法之间的单行,这10个getter和10个setter表示每个类的10 * 2 * 4 = 80行。您只需添加一个@Data注释即可。

因此,我将专注于删除,并编写一个简单的regex来识别琐碎的getter和setter。之后,我很乐意手动为所有修改过的文件添加注释,即使是对几十个实体也是如此。忘记一个没有问题,因为它会导致明显的编译时错误。

一个用于简单getter的简单的、未经测试的正则表达式:

代码语言:javascript
复制
[ \t]+public [\\w<,> ]+ get[A-Z](\\w+)\\(\\)\\s*\\{\\s*return\\s+[a-z]\\1;\\s*\\}\\s*\n

没有这样的正则表达式是完美的(例如,当数组返回时,或者当您使用非标准格式或命名时;这很容易修复,但可能会出现其他问题)。尽管如此,它还是可以完成自己的工作。

我的正则表达式不允许在方法体中有注释,但我不认为注释的getter是微不足道的。

票数 1
EN

Stack Overflow用户

发布于 2019-01-15 14:56:34

在IntelliJ思想中最好的方法是使用快捷键Command + Shift +A,然后选择你想要的重构。

see this screenshot

票数 0
EN

Stack Overflow用户

发布于 2021-04-23 04:29:14

我不知道有什么集成开发环境可以转换整个项目,所以我写了一个基于JavaParser的命令行工具:lomboker。到目前为止,它还没有实现到@Data的转换,但实现了所有步骤:删除getter、setter、noargsconstructors、toString和EqualsAndHash,并添加相应的注释和它们的导入。因此,将其扩展到涵盖@Data应该是相当容易的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54055649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档