0

在一个旧的 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 系统上。

4

2 回答 2

1

您可以使用 Eclipse 的搜索对话框 (Ctrl+H) 来执行此操作。在“搜索”按钮旁边有一个“替换”按钮。这可用于查找跨多个文件的每次出现(例如,指定每个匹配的文件名*.java),并在单个用户操作中替换它们。

带有替换选项的 Eclipse 搜索对话框

一旦您配置了搜索条件(例如“extends OldClass”)并进行搜索,您将看到一个对话框以输入替换值(例如“extends NewClass”)。为该对话框按“确定”后,它将进行搜索和替换。

替换对话框

这也允许在搜索和替换中使用正则表达式(我假设这将允许使用正则表达式组捕获,但我还没有测试过)。应该可以将相同的原则应用于您还想要删除的参数。

请注意,如果您只想修改同时出现extends OldClassAND, B b)并且它们可以独立出现的类,它会变得更加棘手。

于 2012-05-15T19:17:58.367 回答
1

如果当前代码不太复杂,您可以使用 sed,例如,

find . -type f -iname '*.txt' -exec sed -i 's,this,that,g' {} +
于 2012-05-15T19:03:40.183 回答