多くの場合、データ階層から値をフェッチするときにNullPointerExceptionsを回避するためにnullチェックを行います。NullPointerExceptionsはエラーを起こしやすく、多くの定型文を必要とします。
オブジェクトを取得するときにnullチェックをスキップできる非常に単純なルーチンを作成しました...
public final class NoNPE {
public static <T> T get(NoNPEInterface<T> in) {
try {
return in.get();
} catch (NullPointerException e) {
return null;
}
}
public interface NoNPEInterface<T> {
T get();
}
}
私はこのように少し使います...
Room room = NoNPE.get(() -> country.getTown().getHouses().get(0).getLivingRoom());
上記の結果、すべての親レベルをnullチェックする必要なく、Roomオブジェクトまたはnullが取得されました。
上記についてどう思いますか?問題のあるパターンを作成していますか?あなたの意見ではこれを行うより良い方法はありますか?
Option
(またはMaybe
)モナドを再発見したと思います:)
java.util.Optional
欠損データを表すためにnullの代わりに使用するようにアプリケーションを再設計することを検討することをお勧めしますか?これは単に鎖の末端に障害状態を返すのではなく、便利な場合のためにあなたが記述の両方のユーティリティおよびデフォルトのデータを続けていくしたいケースを提供してい...