引数でJava 8のオプションを使用しない理由
多くのWebサイトで読みましたOptionalは戻り値の型としてのみ使用し、メソッドの引数では使用しないでください。論理的な理由を見つけるのに苦労しています。たとえば、2つのオプションパラメータを持つロジックがあります。したがって、次のようにメソッドシグネチャを記述することは理にかなっていると思います(ソリューション1): public int calculateSomething(Optional<String> p1, Optional<BigDecimal> p2 { // my logic } 多くのWebページでは、オプションをメソッドの引数として使用しないでください。これを念頭に置いて、次のメソッドシグネチャを使用して明確なJavadocコメントを追加し、引数がnullになる可能性があることを指定します。将来のメンテナがJavadocを読み、引数を使用する前に常にnullチェックを実行することを期待します(解決策2) : public int calculateSomething(String p1, BigDecimal p2) { // my logic } または、より良いインターフェイスを提供し、p1とp2がオプションであることをより明確にするために、メソッドを4つのパブリックメソッドに置き換えることもできます(ソリューション3)。 public int calculateSomething() { calculateSomething(null, null); } public int calculateSomething(String p1) { calculateSomething(p1, null); } public int calculateSomething(BigDecimal p2) { calculateSomething(null, p2); } public …