2016-09-15 6 views
-1

Javaは到達不可能なセクションを含むコードをコンパイルしないことはよく知られています。今後のバージョンでは、ステートメント到達可能性のより徹底的なチェックにより、Javaコードが破損する可能性があります。

到達可能性の判断が不可能であることもよく知られています(停止問題?)。

Javaコンパイラが向上するにつれて、それらが到達可能性を判断する上でより良くなると推測することもできます。

これにより問題が発生します。新しいJavaコンパイラが以前に機能したJavaコードをコンパイルできないことがあります。つまり、下位互換性は尊重されません。

ここで正しいですか?または私は何かを逃している?

+0

親愛なるdownvoter、私はこの質問を改善できる方法はありますか? –

+0

Javaコードをコンパイルするときに到達不可能なコードが警告を出すと思うので、将来のJavaコンパイラは同じように動作します。 –

答えて

2

下位互換性は良いことですが、それは目標ではありません。大部分のJavaリリースでは何かが壊れています。

これは、将来的にはthe part of the language specification that defines reachabilityが変更される可能性は低いと思われます。明確なメリットはなく、プログラムを変更すると、多すぎるプログラムが破損する可能性があります。

+0

ありがとうございます。したがって、JLSには、コンパイラが到達可能性を判断する方法を定義するセクションがあります。 –

+1

もちろん - https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.21 – Joni

関連する問題