【发布时间】:2020-09-25 00:16:44
【问题描述】:
我在 Java 中有以下代码,需要使用 Java 8 中的 Optional 进行优化:
if (x.isEmpty() || x.contains("<")) {
x = "hello1";
}
else if (x.contains(",")) {
x = "hello2";
} else {
x = "hello3";
}
有人可以建议使用 Optional 的基于 Java 8 的代码吗?
我不想使用多个 if-else。我更喜欢在 java 8 中使用像 Optional 这样更实用的东西,因为 if-else 是更命令式的风格。所以我可以纠正说我的目标不是在性能方面的代码优化,而是让它使用本质上更实用的 Java 8 标准。
【问题讨论】:
-
代码对我来说看起来非常易读和高性能。您希望在“优化”方面得到什么?
-
我不想使用多个 if-else 并使用功能更强大的东西,例如 java 8 中的 Optional,因为 if-else 是更命令式的风格。所以,我可以纠正并说我的目标不是在性能方面的代码优化,而是让它使用本质上更实用的 java 8 标准
-
代码是完美的。
Optional并不是要替换if/else块,而是用作可能返回结果或不返回结果的方法的返回值。根据需要使用Optional被视为反模式。至少,Stuart Marks 是Optionalyoutu.be/Ej0sss6cq14?t=1665 背后的首席开发人员 -
并且将方法调用添加到没有它们已经可以工作的代码不可能被描述为
optimization。不清楚你在问什么。