如何以编程方式修改Java源代码

时间:2018-03-29 05:32:57

标签: java

我需要能够以编程方式修改Java源代码,特别是应用重构。例如,将方法从一个类移动到另一个类,将访问修饰符从公共更改为私有等

现在在C#中我可能会采用抽象语法树/ Roslyn方法,但我不知道从哪里开始用Java。

给定一个java源代码文件,如何解析它以便可以进行修改然后保存到它?

1 个答案:

答案 0 :(得分:0)

首先:类似的事情(称为重构)已经由一个优秀的Java IDE(Eclipse,IntelliJ IDEA,NetBeans和你的名字)处理。我真的认为这样的东西应该由IDE来处理。

第二:如果您真的想以编程方式编辑文件,请记住,您是负责格式和语法的人。您必须阅读文件,编辑它们(剪切,粘贴或在适当的行添加一些代码)并保存它们。 VedX提供的链接是基本IO的良好开端。但是还有很多事要跟踪。

我使用OpenEdge ABL做了类似的事情并不是一件容易的事情(你会发现你从未想过的问题,如果你没有备份你的代码那么它就会被提起来)。我已经完成了它,但最终在时间花费完成和实际有用之间并不是一个很好的平衡(我只需要约4次约1500个文件)。

最后(在我失去了很多时间发明重构之后)我写了一些类生成器,它写了一个全新的文件evertime我需要改变一些东西 - 最后我只更改了类生成器(也许这是你没有的东西想到并且它也适合)。现在它是自动化和通用的,并且可以并行运行(OpenEdge不是为什么设计的 - 好吧,这对我来说是一个廉价的黑客攻击)。

第三:也许您可以在Java项目中使用一个包。我会尝试谷歌它。我的第一次尝试就是:http://www.methodsandtools.com/archive/archive.php?id=4首先要了解它的全部内容以及需要考虑的内容。