给出方法
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();
答案 0 :(得分:3)
在IntelliJ 14.1.4和15.0中:
在方法声明上放置一个插入符号,按ctrl + alt + shift + t
(或cmd
代替ctrl
(如果在Mac上)并选择7. Parameter Object...
。为新班级键入名称(我使用Holder
),然后按Refactor
。
弹出窗口会询问您Holder
的默认值,请保留Leave blank
,以便编译器告诉您是否出现任何问题。在这种情况下,不需要默认值,因此应该在没有任何编译器错误的情况下正确重构。
再次在已编辑的方法ctrl/cmd + alt + shift + t
上放置插入符号,选择4. Move...
。应该可以选择Holder
类。按Refactor
。
最后,在第一步中生成的Holder
类内联getter中。将插入符号放在getter声明中,然后按ctrl/cmd + alt + n
。不幸的是,必须为每个人单独完成。