有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java用IntelliJ IDEA中的等效代码替换lambda表达式

我可以使用IntelliJ IDEA重构将lambda表达式替换为等效表达式吗。谢谢

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

..
StateOwner stateOwner = new StateOwner();

stateOwner.addStateListener(
    (oldState, newState) -> System.out.println("State changed")
);

我能让IntelliJ IDEA用替换lambda表达式部分吗

stateOwner.addStateListener(new StateChangeListener() {

    public void onStateChange(State oldState, State newState) {
        System.out.println("State changed")
    }
});

共 (2) 个答案

  1. # 1 楼答案

    这取决于你的热键设置。但如果使用默认值,可以尝试在lambda窄参数或lamdba参数上使用引导光标,然后alt+Enter,然后选择“用匿名类替换lambda”

  2. # 2 楼答案

    它提供的方式与将代码转换为lambda的方式相同。 确保你有一个相当晚的版本