LoginSignup
5
5

More than 5 years have passed since last update.

[Java] nullを返すメソッドの戻り値はOptional<>にすると幸せかもしれない

Posted at

Optional<>前夜

例えば、こんなメソッドを作ったとします。

Factory.Java
public class Factory {
    /**
     * MyObjの新規インスタンスを作成して返す。<br>
     * 作成失敗したときはnullを返す。
     *
     * @return
     */
    public MyObj createMyObj() {
      // ...
    }
}

このメソッドを使う側は、こんな感じのコードになるでしょう。

Factory factory;
// ...
MyObj myObj = factory.createMyObj();

if (myObj != null) {
    // 成功時の処理
}

Optional<>後夜

Optional<>を返すようにしてみました。

Factory.Java
public class Factory {
    /**
     * MyObjの新規インスタンスを作成して返す。<br>
     * 作成失敗したときはnullを返す。
     *
     * @return
     */
    public Optional<MyObj> createMyObj() {
      // ...
    }
}

使う側はこんな感じになります。

Optional<MyObj> myObj = factory.createMyObj();

myObj.ifPresent(o -> {
    // 成功時の処理
});
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5