如何使用java.util.Optional实现多维数组克隆替代空值判断
实现代码
import java.util.Arrays; import java.util.Optional; private static int[][] multiArrayClone(int[][] multiArray) { return Optional.ofNullable(multiArray) .map(arr -> Arrays.stream(arr).map(int[]::clone).toArray(int[][]::new)) .orElse(null); }
逻辑说明
- 以上实现和你原有代码的行为完全等价,没有额外性能损耗
- 用
Optional.ofNullable()替代了显式的if (multiArray != null)空值判断逻辑 - 如果想要进一步优化空安全,也可以修改方法返回值类型为
Optional<int[][]>,去掉最后的.orElse(null),直接返回Optional实例,调用方可以通过Optional的API更安全地处理空返回场景,避免NPE问题。
内容的提问来源于stack exchange,提问作者Andrzej Więcławski
相关产品推荐
相关产品推荐

