一行布局lambda if语句

时间:2017-03-30 09:53:55

标签: java lambda

我有一段看起来非常丑陋的代码,我想知道是否有一种更漂亮的方式来做这件事。

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

myProperties

但后来我有这条丑陋的界限:

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()); });

但编译器并不喜欢这样。有没有办法让代码更漂亮?

1 个答案:

答案 0 :(得分:3)

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

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

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