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