是否有一系列 IntelliJ 自动重构可以消除多余的类 Foo?
重构前:
public static class Foo {
private final String s;
public Foo(String s) {
this.s = s;
}
public String getS() {
return s;
}
}
private static void run() {
Foo f = new Foo("blah");
f.getS().length();
f.getS().getBytes();
Foo f2 = new Foo("blahg");
f2.getS().length();
f2.getS().getBytes();
}
重构后:
private static void run() {
String f = "blah";
f.length();
f.getBytes();
String f2 = new "blahg";
f2.length();
f2.getBytes();
}
在我的具体案例中进行自动重构的原因是现实生活中 Foo 被使用了几千次。但我也只是感兴趣。使用其他自动化步骤将代理对象获取到 Foo 的状态非常容易,但我就是不知道如何进行最后一点。
最佳答案
不确定这在更通用的设置中如何工作,但我会:
重构
Foo
将getS
的名称更改为非常独特的名称,例如XXXXXXXXX
字符串将
.XXXXXXXXX()
替换为空字符串正则表达式 stringn 将
Foo (\w+) = new Foo\("(\w+)"\);
替换为String $1 = "$2"
;
这将处理 run
方法中的所有内容。现在您只需要手动删除 Foo
,虽然这不是 IntelliJ 重构,但只需要在一个地方完成,因此可能是可以接受的。
关于java - IntelliJ 重构为内联冗余数据类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58230042/