gpt4 book ai didi

java - IntelliJ 重构以内联冗余数据类

转载 作者:行者123 更新时间:2023-11-30 06:40:24 25 4
gpt4 key购买 nike

是否有一系列 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com