我有超过一千个 POJO,我需要根据我制作的自定义 XML 解析注释库对其属性进行正确注释。由于 POJO 的数量很大,并且它们已经带有 JAXB 注释,因此我需要自动化 2 3 任务:
- 删除“所有”现有注释
- 重新注释 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 中:
将
@.*
替换为“”搜索:
公共(public)类 (.*)\{
并替换为:
@BeanName(beanName="\$1")\n公共(public)类\$1\{
当然也可以在其他编辑器中完成,但使用 \$1
的反向引用可能会有所不同。
关于java - 自动注释 Java 类的程序/脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045683/