オプションを使用した「Get」呼び出しのチェーンの安全なナビゲート
Java プログラミングでは、「get」呼び出しのチェーンに遭遇することがよくあります。次のようなものです。
house.getFloor(0).getWall(WEST).getDoor().getDoorknob();
潜在的な NullPointerExceptions を回避するために、開発者は多くの場合、冗長な null チェックに頼ることになります。
if (house != null &&& house.getFloor(0) &&& house.getFloor(0).getWall(WEST) != null &&& house.getFloor(0).getWall(WEST).getDoor() != null) ...
このアプローチは、呼び出しのチェーンが長くなるとさらに扱いにくくなります。もっと洗練された解決策はありますか?
はい、Java 8 で Optional 型が導入されたことで、一連の取得での null の処理が大幅に簡単になりました。
Null の処理に Optional を使用する
Optional は、オプションの値を表すラッパー クラスです。 null 以外の値を含めることも、空にすることもできます。
get のチェーンで null 処理に Optional を使用するには、map() メソッドでそのチェーン機能を利用できます。
検討してください。次の例:
Optional.ofNullable(house) .map(house -> house.getFloor(0)) .map(floorZero -> floorZero.getWall(WEST)) .map(wallWest -> wallWest.getDoor()) .map(door -> wallWest.getDoor());
このコードは、対応する get 呼び出しの結果を表す Optional オブジェクトのチェーンを作成します。
Optional を使用する利点
Optional を使用すると、次のような利点があります。
結論
デメテルの法則の違反を回避できない場合は、 「get」呼び出しのチェーンを安全にナビゲートするには、Optional を使用することを強くお勧めします。これは、null を処理するエレガントかつ効率的な方法を提供し、コードの堅牢性と信頼性を保証します。
以上がJava のオプション型を使用すると、「Get」呼び出しのチェーンにおける Null の処理をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。