简体   繁体   English

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

[英]Replace lambda expression with equivalent code in IntelliJ IDEA

Can I replace a lambda expression with an equivalent expression using IntelliJ IDEA refactoring. 我可以使用IntelliJ IDEA重构用等效表达式替换lambda表达式。 Thanks. 谢谢。

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

..
StateOwner stateOwner = new StateOwner();

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

Can I have IntelliJ IDEA replace the lambda expression part with 我可以使用IntelliJ IDEA替换lambda表达式部分

stateOwner.addStateListener(new StateChangeListener() {

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

It depends on your hot-key setting. 这取决于您的热键设置。 But if you use default, you can try lead cursor on lambda narrow or lamdba arguments, then alt + Enter , then choose "replace lambda with anonymous class" 但是如果使用默认值,你可以在lambda narrow或lamdba参数上尝试使用前导光标,然后按alt + Enter ,然后选择“用匿名类替换lambda”

It offers that in the same way as it offers to turn your code into a lambda. 它提供的方式与将代码转换为lambda的方式相同。 Make sure you have a fairly late version. 确保你有一个相当晚的版本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM