报告 java.util.Optional<T>java.util.OptionalDoublejava.util.OptionalIntjava.util.OptionalLongcom.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;
    }
  }

2016.1 的新功能