java.util.Optional<T>、java.util.OptionalDouble、java.util.OptionalInt、java.util.OptionalLong 或 com.google.common.base.Optional 用为字段或形参的类型的任何情况。
Optional 设计为在需要一个明确的方式来表示 "没有结果"的情况下,为库方法的返回类型提供有限的机制。
如果类需要 Serializable,则使用 java.util.Optional 类型的字段也有问题,因为 java.util.Optional 不可序列化。
示例:
class MyClass {
Optional<String> name; // Optional 字段
// Optional 形参
void setName(Optional<String> name) {
this.name = name;
}
}