【发布时间】:2022-01-01 01:18:16
【问题描述】:
我有这样的课
class User {
private String firstName;
private String lastName;
...
}
我希望lastName 属性为可选。我如何在 Java 中实现这一点?
在某些语言中,它非常优雅和简单,我们只需在字段名称后附加一个问号。
【问题讨论】:
-
Java 中没有这个概念。大多数人只会将
null分配给它,然后在返回它的方法上返回Optional<String>。 (通常不建议将事物存储为Optional<String>,也不接受这样的参数,只返回它)。 -
你已经实现了。所有引用类型都可以为空。
-
可选是什么意思?它已经是一种可选的,因为您决定是否为您的属性分配一个值。
-
在像 Kotlin 这样的语言中,
String是不可为空的,而String?是可空的。在 Java 中,所有字符串都可以为空,因此您可以将所有字符串视为可选。现在您的问题应该是:如何使它们成为非可选的。这是一个棘手的问题。