给定一个方法
public class SomeClass{
public void methodName (Param1 param1, Param2 param2, Param3 param){
...
}
}
称为
SomeClass someObject = new SomeClass();
someObject.methodName(x, y, z);
在 IntelliJ 中重构 someObject.methodName(x, y, z);
的最快方法是什么
public class MethodNameHandler{
private Param1 param1;
private Param2 param2;
private Param3 param3;
public MethodNameHandler(Param1 param1, Param2 param2, Param3 param3){
this.param1 = param1;
this.param2 = param2;
this.param3 = param3;
}
public void methodName(){
...
}
}
称为
new MethodNamehandler(x, y, z).methodName();
最佳答案
在 IntelliJ 14.1.4 和 15.0 中:
第 1 步:
在方法声明上放置一个插入符号,按 ctrl + alt + shift + t
(如果在 Mac 上,则按 cmd
而不是 ctrl
)并选择 7。参数对象...
。为新类输入名称(我使用 Holder
),然后按 Refactor
。
弹出窗口会询问您Holder
的默认值,请将留空
以便编译器会在出现任何问题时告诉您。在这种情况下,不需要默认值,因此应该在没有任何编译器错误的情况下正确重构。
第 2 步:
再次在编辑的方法上放置一个插入符号,ctrl/cmd + alt + shift + t
,选择 4。移动...
。 Holder
类应该可用并被选中。按重构
。
第 3 步:
最后,在您的 Holder
类中内联第一步生成的 getter。在 getter 声明上放置一个插入符号,然后按 ctrl/cmd + alt + n
。不幸的是,必须分别为它们中的每一个完成。
关于java - 如何在 Intellij 中重构 - 带参数的方法到带字段的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569770/