我对 Java 8 if 语句有疑问。有人可以告诉我一种不使用 if 仅使用 Java 8 lambda 来编写此代码的方法吗? 解决方案不应包含 if、while 或 for。有可能吗?
if (first_number == second_number) {
return "PERFECT";
} else if (first_number > second_number) {
return "ABUNDANT";
} else {
return "DEFICIENT";
}
最佳答案
没有“if's、while's 或 for's”,但也没有 lambda:
return (first_number == second_number ? "PERFECT" :
first_number > second_number ? "ABUNDANT" : "DEFICIENT");
? :
在 Java 语言规范(参见 15.25. Conditional Operator ? :
)中称为条件运算符,但通常称为三元运算符,因为它是唯一的Java 运算符,分为 3 个部分。
关于Java8 FP if/else if/else 替换为 lambdas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52345682/