JSRUN 用代码说话

内联

编辑教程

内联

IntelliJ IDEA 提供了以下的内联重构:

内联变量重构用其初始值设定项替换冗余变量用法。此重构与提取变量重构相对应。变量必须在声明中初始化。如果在代码中的某个地方修改了初始值, 则只有在修改之前的实例才会被内联。
内联方法重构导致将方法的主体放入其调用者的主体中。您可以选择:内联所有出现的方法,并删除该方法内联只发生一次,并保留该方法。此重构与提取方法相对应。
内联到匿名类重构允许将冗余类替换为其内容。从 Java8 开始,内联的匿名类可以自动转换为 lambda 表达式。
内联构造函数允许压缩一个构造函数链,如果其中一个是另一个的特例情况。
内联 JSP/JSPX 像常规的 Java 内联重构一样工作。
内联超类重构导致将超类的方法推送到它们所在的类中,并删除超类。

内联示例

内联变量

内联变量前:

public void method() {
    int number = anotherClass.intValue();
    int b = a + number;
}

内联变量后:

public void method() {
    int b = a + anotherClass.intValue();
}

内联变量前:

public void method() {
    AnotherClass.InnerClass aClass = anotherClass.innerClass;
    int a = aClass.i;
}

内联变量后:

public void method() {
    int a = anotherClass.innerClass.i;
}

内联方法

内联方法前:

public void method() {
    int c=add(a,b);
    int d=add(a,c);
}

private int add(int a, int b) {
    return a+b;
}

内联方法后:

public void method() {
    int c= a + b;
    int d= a + c;
}

内联方法前:

public ArrayList method() {
    String[] strings = {"a","b","c"};
    ArrayList list=add(strings);
    return list;
}

private ArrayList add(String[] strings) {
    ArrayList list = new ArrayList();
    for (int i=0; i< strings.length; i++)
        {list.add(strings[i]);}
    return list;
}

内联方法后:

public ArrayList method() {
    String[] strings = {"a","ab","abc"};
    ArrayList list1 = new ArrayList();
    for (int i=0; i< strings.length; i++)
        {list.add(strings[i]);}
    ArrayList list = list1;
    return list;
}

内联构造函数

内联构造函数前:

public class Class {
    public int varInt;
    public Class() {
        this(0);
    }

    public Class(int i) {
        varInt=i;
    }

    public void method() {
        Class aClass=new Class();
        ...
    }
}

内联构造函数后:

public class Class {
    public int varInt;
    public Class(int i) {
        varInt=i;
    }
    public void method() {
        Class aClass=new Class(0);
        ...
    }
}

内联超类

内联超类前:

public class Bar {
    ...
    int calculations1() { ... }
    int calculations2() { ... }
}

class Foo extends Bar {
    int someMethod() {
        ...
        if (something > calculations1()) {
            ...
            return calculations2();
        }
        ...
    }
}

内联超类后:

class Foo {
    ...
    int someMethod() {
        ...
        if (something > calculations1()) {
            ...
            return calculations2();
        }
        ...
    }
    int calculations1() {...}
    int calculations2() {...}
}

内联到匿名类

内联到匿名类前:

import java.util.*;
public class Main {
    public class MyComparator implements Comparator<String> {
        @Override
        public int compare(String s1, String s2) {
            return 0;
        }
    }

    void sort(List<String> scores) {
        scores.sort(new MyComparator());
    }
}

内联到匿名类前:

import java.util.*;

public class Main {

    void sort(List<String> scores) {
        scores.sort((s1, s2) -> 0);
    }
}

执行内联重构

将插入符号放置在编辑器中的所需符号内联。
执行下列操作之一:
在主菜单或上下文菜单上,选择:重构丨 内联。
按 Ctrl+Alt+N。
在与所选符号对应的内联对话框中指定内联选项。
预览并应用更改。
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟