我有超过一千个POJO,其属性,我需要根据我制作的自定义XML解析注释库进行正确注释。由于POJO的数量很大,并且它们已经被JAXB注释,我需要自动执行 2 3 任务:
规则很简单(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)以使我的问题看起来“真实”
答案 0 :(得分:1)
您可以在所有java文件中进行正则表达式搜索/替换。在IntelliJ IDEA中:
将@.*
替换为“”
搜索:
public class (.*) \{
并替换为:
@BeanName(beanName="\$1")\npublic class \$1 \{
当然也可以在其他编辑器中完成,但使用\$1
的反向引用可能会有所不同。
答案 1 :(得分:0)
Intellij的Structural search and replace将能够提供帮助。如果您愿意写一些程序,请尝试eclipse AST modification。它也有一些sample code开始。