[Java] nullを返すメソッドの戻り値はOptional<>にすると幸せかもしれない
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 -> {
// 成功時の処理
});