要在遗留项目中自动执行某些手动任务,我需要从java或groovy代码中修改现有的java文件。
我不想使用RegEx,因为在我看来它既不快也不干净。
我找到了javassist和srcgen4javassist。第一个允许我按照自己的意愿修改我的源代码,但只写字节码,丢失所有注释和注释。而第二个我没有设法读取一个不是用srcgen4javassist本身创建的现有类。
是否有一个优雅的解决方案,还是我需要咬紧牙关并使用正则表达式?
答案 0 :(得分:0)
你可以使用eclipse的ASTParser之类的东西来解析代码,此时你可以找到你的替换目标xpath-style,但它有很多工作。
您还可以考虑使用注释和writing an annotation processor to generate/alter sources at runtime标记替换区域,但(至少在我看来)API很麻烦。
您可以将regexp与源代码中的某些标记结合使用,例如
//START REPLACEMENT-TARGET
...code to be edited/replaced
//END REPLACEMENT TARGET
这将使您的正则表达式定位更加安全。