我在旧的Java项目中有很多重新格式化。
我有超过300个由工厂创建的不同类,我想使用Eclipse插件或工具自动化更改。
我需要删除300个类的相同参数(如上面的Foo类),并且每次都要更改母类名称。
示例:
public Foo extends **OldClass** {
public Foo(A a, **B b**){
//..
}
}
到
public Foo extends newClass {
public Foo(A a){
//..
}
}
我还希望能够“批量查找和替换”许多声明。我的意思是,我希望有一个带有替换列表的工具(带有正则表达式模式),只需单击即可替换所有内容。
你知道我怎么做吗?我在Windows 7系统上。
答案 0 :(得分:1)
如果当前代码不是太复杂,你可以使用sed,例如,
find . -type f -iname '*.txt' -exec sed -i 's,this,that,g' {} +
答案 1 :(得分:1)
您可以使用Eclipse的“搜索”对话框(Ctrl + H)执行此操作。 “搜索”按钮旁边有一个“替换”按钮。这可以用于查找多个文件中的每个事件(例如,指定匹配*.java
的每个文件名),并在单个用户操作中替换它们。
配置搜索条件(例如“extends OldClass”)并搜索后,您将看到一个输入替换值的对话框(例如“extends NewClass”)。按下该对话框的“确定”后,它将进行搜索和替换。
这也允许在搜索和替换中使用正则表达式(我假设这将允许使用正则表达式组捕获,但我还没有测试过它)。应该可以将相同的原则应用于您想要删除的参数。
请注意,如果您只想修改extends OldClass
和, B b)
出现的类,并且它们可以独立发生,则会变得更加棘手。