如何在Intellij中重构 - 带有参数的方法用于带字段的类

时间:2015-11-06 15:08:53

标签: java intellij-idea refactoring

给出方法

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();

1 个答案:

答案 0 :(得分:3)

在IntelliJ 14.1.4和15.0中:

第1步:

在方法声明上放置一个插入符号,按ctrl + alt + shift + t(或cmd代替ctrl(如果在Mac上)并选择7. Parameter Object...。为新班级键入名称(我使用Holder),然后按Refactor

弹出窗口会询问您Holder的默认值,请保留Leave blank,以便编译器告诉您是否出现任何问题。在这种情况下,不需要默认值,因此应该在没有任何编译器错误的情况下正确重构。

第2步:

再次在已编辑的方法ctrl/cmd + alt + shift + t上放置插入符号,选择4. Move...。应该可以选择Holder类。按Refactor

第3步:

最后,在第一步中生成的Holder类内联getter中。将插入符号放在getter声明中,然后按ctrl/cmd + alt + n。不幸的是,必须为每个人单独完成。