java - 如何在 Intellij 中重构 - 带参数的方法到带字段的类

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

最佳答案

在 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/

相关文章:

java - 在 Java 8 中为单引号和逗号连接数字

java - 如何插入模板来使用intellij idea编写代码

intellij-idea - 如何在 PhpStorm(或 WebStorm)中创建多文件模板?

loops - 我可以在 MSBuild 文件中执行循环吗?

delphi - 针对 17 年以上无法测试的 Delphi 代码的重构计划

java - 如何向高度耦合的方法添加新参数?

java - Java `this` 在继承情况下实际指的是什么?

java - public static main (String args[]) 的变体

java - 在ubuntu中实例化JAVA_HOME的各种方式有什么区别

java - 为 java 8 VM 配置初始堆大小