Java 8 の Optional をメソッドの引数として使用すべきでない理由
Java 8 の Optional は戻り値の型として意図されていますが、メソッドとして使用する議論がいくつかの議論を引き起こしました。この問題の簡潔な分析は次のとおりです。
オプションの引数を回避するための根拠
-
不必要な複雑さ: オプションの引数を使用すると、内部に条件付きロジックが導入されます。可能なメソッド逆効果です。
-
コンパイラの非効率性: オプションのラッピングには引数の不必要なボックス化が含まれ、コンパイラのパフォーマンスに影響します。
-
メモリ オーバーヘッドの増加: オプションのパラメータはより多くのメモリを消費しますnull 許容値よりも
-
Null 参照のリスク: 実際のパラメータで Optional を null として渡すことは潜在的な問題です。
-
データ フローの不均衡: Optional は 2 つの処理を行います。状態 (存在および空)。入力として使用する場合は分離する必要があり、データ フローを作成します。
代替アプローチ
オプションの引数を使用する代わりに、次の代替案を検討してください:
-
Nullable を許可するパラメータ: null 許容パラメータを使用します (例: String p1、BigDecimal p2) を使用して、潜在的な null 値を示し、明確な Javadoc 説明を含めます。
-
オーバーロードされたメソッドの提供: 長い条件文を避けるために、特定の引数の組み合わせでオーバーロードされた複数のメソッドを作成します。 (例、calculateSomething(String p1)、calculateSomething(BigDecimal p2)、calculateSomething(String p1, BigDecimal p2))
以上がJava 8 の Optional をメソッドの引数として使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。