为什么Java 8的Optional不应该用作方法参数
虽然Java 8的Optional是作为返回类型,但它用作方法论点引起了一些争论。以下是对该问题的简要分析:
避免可选参数的基本原理
-
不必要的复杂性:使用可选参数引入了条件逻辑方法,可以是适得其反。
-
编译器效率低下:可选包装涉及不必要的参数装箱,影响编译器性能。
-
增加内存开销:可选参数消耗更多内存比它们的可空等价物。
-
空的风险参考文献: 在实际参数中将Optional 作为 null 传递是一个潜在的问题。
-
数据流不平衡:Optional 处理两种状态(存在和空),在用作时必须将其分开输入,创建数据流复杂性。
替代方案方法
不要使用可选参数,请考虑以下替代方案:
-
允许可为空参数:使用可为空参数(例如,String p1、BigDecimal p2) 指示潜在的空值,并包含清晰的 Javadoc
-
提供重载方法: 创建使用特定参数组合重载的多个方法,以避免长条件语句。 (例如,calculateSomething(String p1)、calculateSomething(BigDecimal p2)、calculateSomething(String p1, BigDecimal p2))
以上是你应该使用Java 8的Optional作为方法参数吗?的详细内容。更多信息请关注PHP中文网其他相关文章!