gpt4 book ai didi

可用于以不同方式表示 null 和不存在的 Java 类

转载 作者:行者123 更新时间:2023-12-01 13:02:57 24 4
gpt4 key购买 nike

我想知道是否有一个现成的Java类可以与Guava的Optional类似地使用,但以不同的方式对待null和absent。

我有一个用例,需要传递带有字符串值、空值或不存在(不提供任何内容)的方法参数。 Null 是一个纯粹有效的值,具有特殊含义。

我尝试使用Guava的Optional,但发现它无法区分null和absent。将 null 传递给Optional 表示不存在。

我想知道是否有现成的 Java 实用程序可用于我的用例:它可以携带值、空值或无值(不存在)。

非常感谢

最佳答案

java语言可以做到:用一个token对象来表示“缺席”。

假设它是字符串类型:

private static final String ABSENT = new String(""); // not interned

private String attribute = ABSENT;

public boolean attributeIsSet() {
return attribute == ABSENT; // identity comparison
}

public String getAttribute() {
if (attributeIsSet())
return attribute;
throw new IllegalStateException(); // or whatever
}

这允许 null 成为有效值。

关于可用于以不同方式表示 null 和不存在的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23417650/

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