gpt4 book ai didi

java - 为什么不调用检查 NULL 的 Optional.isEmpty() isNull()

转载 作者:行者123 更新时间:2023-12-05 08:28:54 24 4
gpt4 key购买 nike

这可能是个愚蠢的问题。

当我在代码中使用 Optional.isEmpty()

Optional<List<String>> optional = Optional.of(new ArrayList<>());

optional.isEmpty(); // only checks if the value is NULL or not.

isEmpty() 方法只检查值是否为 null

public boolean isEmpty() {
return value == null;
}

这个方法名我好像不太清楚。

我想知道为什么这个方法被命名为 isEmpty() 而不是 isNull() 因为它在幕后执行 null 检查?

最佳答案

这是因为 null 检查是一个实现细节,而不是方法逻辑上的作用。从逻辑上讲,该方法检查可选值是否为空或已占用。

技术上,这可以通过多种方式实现,具体取决于Optional 存储其值的方式。 JDK 8 的实现碰巧使用了一个带有空值检查的引用对象,但可以想象其他实现可以以不同的方式做到这一点。将高级接口(interface)描述与其实现混淆是错误的。封装的全部意义在于从用户那里抽象出实现细节。

关于java - 为什么不调用检查 NULL 的 Optional.isEmpty() isNull(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73597805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com