java - 自动注释 Java 类的程序/脚本

标签 java file-io automation annotations sed

我有超过一千个 POJO,我需要根据我制作的自定义 XML 解析注释库对其属性进行正确注释。由于 POJO 的数量很大,并且它们已经带有 JAXB 注释,因此我需要自动化 2 3 任务:

  1. 删除“所有”现有注释
  2. 重新注释 1 中的 POJO

规则很简单 (1) - 删除任何以“@”开头的行

(2) 很复杂,我想从检测 Java 类中的“public class XYZ”开始,并用 @BeanName(beanName="XYZ") 对其进行注释

此后,作为操作项 (3),我需要检测 POJO 中变量的数据类型,如下注释:

@ClassMember(dataType = DataType.INTEGER, memberName = "tripId")
    public int tripId;
    @ClassMember(dataType = DataType.COMPLEX, memberName = "stop")
    public Stop stop;

我认为 sed 脚本也可能有帮助,但我更喜欢 Java,正如我“猜测”的那样,我可能需要在后续步骤中使用反射。

谢谢!

编辑: 我知道上述情况非常简单,可以使用正则表达式工具来实现 - 但我需要一个脚本/程序。如果社区可以帮助我为这样的“简单”案例编写代码,我就可以扩展复杂的场景 - 这是使用 IDE 中内置的正则表达式工具“无法”完成的(无需大量手动干预)。

编辑2: 我添加了一点(3)以使我的问题看起来“真实”

最佳答案

您可以在所有 java 文件中进行正则表达式搜索/替换。在 IntelliJ IDEA 中:

  1. @.*替换为“”

  2. 搜索:

公共(public)类 (.*)\{

并替换为:

@BeanName(beanName="\$1")\n公共(public)类\$1\{

当然也可以在其他编辑器中完成,但使用 \$1 的反向引用可能会有所不同。

关于java - 自动注释 Java 类的程序/脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045683/

相关文章:

java - 为什么我的 FFT 给出的可视化器输出与 Windows Media Player 不同?

java - 在java中调用C函数

Python:如何使用 Python 访问 mp3 文件的元数据?

file-io - 如何使用 "compress/gzip"包来 gzip 文件?

python - 如何监控特定网站 CSS 的变化?

ruby - 如何从命令将 Selenium Webdriver(Ruby 绑定(bind))测试结果打印到记事本文件?

java - 热部署 EAR – (Netbeans 8.0.2/Wildfly 9.0.1/Maven 3.3.3)

java - 语句中的 ')'有什么需要

python - 文件读/写意外行为

class - VBA 隐藏用户表单但保留输入的数据