Java の複数の戻り値: 最終的な戻り値を明らかにする
次の興味深い Java コードを考えてみましょう:
String test() { try { return "1"; } finally { return "2"; } }
このコードは、同じメソッド内で複数の return ステートメントが使用されるという特殊な状況を引き起こします。 Java 言語仕様では、そのようなシナリオの最終的な戻り値が明示的に定義されているのでしょうか?
言語仕様
答えは言語仕様の中にあります。 Java 言語仕様によると、最終的な戻り値は常に、最後に実行された return ステートメントによって返された値です。この特定のケースでは、最後に実行された return はfinally ブロック内で発生し、最終的な戻り値は「2」になります。
JVM Compliance
この仕様には拘束力があります。すべての Java 仮想マシン (JVM) 用。この動作から逸脱する JVM は、言語仕様に準拠していないと見なされます。したがって、準拠する JVM では、test() メソッドの最終的な戻り値が常に「2」になると確信できます。
コンパイラの警告と推奨事項
言語仕様によって動作が定義されていますが、ほとんどのコンパイラはそのようなコード構造について警告を発行します。たとえば、Eclipse は、return ブロックが決して実行されないと示すことがありますが、これは誤りです。これは、複数のリターンを含むコードを記述することの望ましくない性質を示しています。
ベスト プラクティス
メソッド内で複数のリターンを使用することは強くお勧めできません。この方法では、コードの可読性が複雑になり、予期しない動作が発生する可能性があり、確立されたベスト プラクティスに違反します。業界のガイドラインに準拠した明確かつ簡潔なコードを常に目指してください。
以上が複数の return ステートメントを含む Java メソッドの最終的な戻り値は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。