我有一段看起来很丑陋的代码,我想知道是否有更漂亮的方法来做到这一点。

这就是我通常的“漂亮”一行lambda的样子:

Boolean settingsChanged = key.pollEvents().stream()
        .filter(e -> e.kind() == ENTRY_MODIFY) // Negate OVERFLOW
        .anyMatch(e -> ((Path) e.context()).toAbsolutePath().equals(path));


但是然后我有这条难看的线:

if (settingsChanged)
    read().setHandler(arRead -> { if (arRead.succeeded()) handler.handle(arRead.result()); });


我试着这样写:

read().setHandler(arRead -> if (arRead.succeeded()) handler.handle(arRead.result()));


但是编译器不喜欢这样。有什么方法可以修饰代码吗?

最佳答案

您是否在要求格式化代码的建议?

我知道您要求一种行布局。但这通常会降低代码的可读性。大多数公司更喜欢可读性而不是“一线奇迹”

//This doesnt look that bad?
if (settingsChanged){
    read().setHandler(arRead -> {
        if (arRead.succeeded()) handler.handle(arRead.result());
    });
}

关于java - 一行布局lambda if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43114359/

10-10 07:30