内联为匿名类
此重构操作允许用其内容替换多余的类。从Java 8开始,内联的匿名类可以自动转换为lambda表达式。
执行重构
- 在代码编辑器中,将光标放在用户想要内联为匿名类的类的声明位置。
- 单击右键展示上下文菜单,选择 。
- 在打开的“内联为匿名类”对话框中,选择是否在所有内联位置完成后保留该类。如下图所示:
图1 内联为匿名类
- 单击“重构”以应用重构操作。
示例
举个例子,将类MyComparator内联并删除。生成的匿名类将自动转换为lambda表达式。
重构前
“com\refactoring\source\InlineAnonymousClazz.java”文件内容如下:
class InlineAnonymousClazz { 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()); } }
重构后
“com\refactoring\source\InlineAnonymousClazz.java”文件内容如下:
class InlineAnonymousClazz { void sort(List<String> scores) { scores.sort((s1, s2) -> 0); } }