如何在多个java类中自动修改代码?

Posted

技术标签:

【中文标题】如何在多个java类中自动修改代码?【英文标题】:How to modify code automatically in multiple java classes? 【发布时间】:2020-07-19 14:16:45 【问题描述】:

我有一个对象层次结构或树,我想做两件事:

    对于每个节点,将每个公共字段设为私有并生成 getter 和 setter。 将树的所有状态保存在映射中,因此每次在其中一个节点上调用 setter 或 getter 时,它都会转到映射,并且不会从节点本身保存或检索状态。我这样做的方法是将地图的引用注入到树中的每个节点中,并让 setter 和 getter 在地图上运行。

我想知道是否有办法自动修改我的代码来执行此操作。我知道 IntelliJ 可以将类中的所有公共字段设为私有,并为一个文件生成 getter 和 setter,但是可以为许多人执行此操作吗?是否可以自动进行我概述的第二次修改?

【问题讨论】:

对于1,也许你可以使用正则表达式处理java文件普通文本文件。 您可以添加您的树和至少一个节点的示例吗? 【参考方案1】:

您可以使用 IntelliJ-template for getter/setter 来执行此操作。 这是一个非常清晰的伪代码工具,用于创建自定义代码生成机制。 看this question了解更清楚

【讨论】:

【参考方案2】:

您可以使用ByteBuddy 来完成此操作。

【讨论】:

以上是关于如何在多个java类中自动修改代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java类中定义接口属性并如何使用接口的方法

如何修改类文件和jsp页面后不用重启tomcat就可以自动加载呢

c#如何在父类(或是接口)当中定义一个子类必须要重写的字段(属性)?

java如何在自动生成的实体类中添加属性及其get、set方法

java子类中如何访问和修改父类成员

使用java语言,如何对一个类中的静态方法做切面编程?