在几个网站/分析器上,如Baeldung和SonarQube,我看到包装lambda的单个参数被认为是一种代码异味。现在,我确实理解如果没有括号,您将保存两个字符,但是i.m.h.o,查看参数的其他用法,它也破坏了一致性。对我来说,一致的使用甚至会增加可读性。
a = () -> doSomething();
a = x -> doSomething(x); // <--- Ok?
a = (x) -> doSomething(x); // <--- Code smell?
a = (x, y) -> doSomething(x, y);
a = (x, y, z) -> doSomething(x, y, z);
除了较短的代码和个人偏好之外,还有其他原因导致括号在有一个参数时被认为是不好的吗?
">
为什么"问题总是会引起猜测,但我认为在这种情况下,原因相当明显:两个额外的字符引入了不必要的语法噪音。
我不相信你的一致性反驳论点,因为你大概也不会在所有其他可能出现的表达式周围使用括号,对吧?同样的论点,你会被迫写
int a = ((1) + (2));
而不是
int a = 1 + 2;