Java intellij-move实例方法中如何快速重构
在Intellij中,按照(重构)步骤将java实例方法重构到另一个类的最快的方法是什么 例如:Java intellij-move实例方法中如何快速重构,java,intellij-idea,refactoring,Java,Intellij Idea,Refactoring,在Intellij中,按照(重构)步骤将java实例方法重构到另一个类的最快的方法是什么 例如: public class Bar { public String getX(){ return "x"; } } public class Foo { } public class Runner { public static void main(String[] args) { new Bar().getX(); } } 重构到
public class Bar {
public String getX(){
return "x";
}
}
public class Foo {
}
public class Runner {
public static void main(String[] args) {
new Bar().getX();
}
}
重构到:
public class Bar {
}
public class Foo{
public String getX(){
return "x";
}
}
public class Runner {
public static void main(String[] args) {
new Foo().getX();
}
}
您可以使用Shift+F6重命名类/方法/变量(只需选择名称并按热键),但您应该知道它不会删除或更改已存在的名称,因此您将获得一个重复的名称。在重命名Bar类之前,最好先删除Foo类。在IntellJ IDEA 15中,您可以执行以下操作:
getX()上的位置代码>
Foo
,name=Foo
,默认值=newfoo()
Foo-Foo
作为目标,然后按重构我不知道intellij的确切情况,但我可以想象,这不是一个可以自动完成的重构,或者至少不能以一种足够普遍的方式使它变得有用:应该在
Foo
的哪个实例上调用getX
方法?Foo
的实例并不重要new Foo()
很好,或者如果程序中所有Foo
的实例都是Foo
那么Foo
也很好。为什么不直接将类栏的名称重构为Foo(假设Foo不存在)呢?在这种情况下,这对您来说可能不重要,但在一般情况下会。我看不到一个足够广泛的用例来保证这是一个内置的重构。我只想喝杯咖啡然后开始窃听sed…:(如果这个方法真的像这里一样简单(我猜不是),那么可以让Bar.getX()
调用静态方法Foo.getX()
,然后将所有调用内联到Bar.getX()
。