「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java のオプション型を使用すると、「Get」呼び出しのチェーンにおける Null の処理を​​どのように簡素化できるでしょうか?

Java のオプション型を使用すると、「Get」呼び出しのチェーンにおける Null の処理を​​どのように簡素化できるでしょうか?

2024 年 11 月 8 日に公開
ブラウズ:392

How Can Java\'s Optional Type Simplify Handling Nulls in Chains of \

オプションを使用した「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 オブジェクトのチェーンを作成します。

使用の利点オプション

オプションを使用すると、次のような利点があります:

  • Null自動的に処理されるチェック: オプションは、null チェックを自動的に処理し、コード内で明示的に null チェックを行う必要がなくなります。
  • 安全な Get 呼び出し: get 呼び出しのいずれかが null を返した場合、対応する Optional は空になり、NullPointerExceptions を防ぎます。
  • Fluent API: Optional のチェーン機能は、取得のチェーンで null を処理するための簡潔で読みやすい方法。

結論

デメテルの法則に違反することを避けられない場合は、Optional を使用するのが最適です。 「get」呼び出しのチェーンを安全にナビゲートするために強く推奨されるアプローチです。これは、null を処理する洗練された効率的な方法を提供し、コードの堅牢性と信頼性を保証します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3