将Intellida表达式替换为IntelliJ IDEA中的等效代码

use*_*669 2 java lambda intellij-idea java-8

我可以使用IntelliJ IDEA重构用等效表达式替换lambda表达式.谢谢.

public class StateOwner {
    public void addStateListener(StateChangeListener listener) { ... }
}

..
StateOwner stateOwner = new StateOwner();

stateOwner.addStateListener(
    (oldState, newState) -> System.out.println("State changed")
);
Run Code Online (Sandbox Code Playgroud)

我可以使用IntelliJ IDEA替换lambda表达式部分

stateOwner.addStateListener(new StateChangeListener() {

    public void onStateChange(State oldState, State newState) {
        System.out.println("State changed")
    }
});
Run Code Online (Sandbox Code Playgroud)

小智 11

这取决于您的热键设置.但是如果你使用默认值,你可以在lambda narrow或lamdba参数上尝试使用前导光标,然后按alt + Enter,然后选择"用匿名类替换lambda"