javac
のコード削除機能に関する情報を見つけるのに苦労しています。
次のようなものがある場合、if
ステートメントは削除されると読みました。
static final boolean DEBUG = false;
if (DEBUG) System.out.println("Hello World!"); // will be removed
しかし、たとえば次のようにするとどうでしょうか。
static final int VALUE = 3;
if (VALUE > 9) System.out.println("VALUE > 9 ???"); // will this be removed?
またはこれ:
static final SomeEnum VALUE = SomeEnum.FOO;
if (VALUE==SomeEnum.BAR) System.out.println("Bar???"); // will this be removed?
javac
プログラムを分析してすべてのデッド コードを見つけることは非常に困難/不可能であるため (おそらく停止問題に似ています)、認識して削除する明確に定義された構造 (上記の最初の例のように) はわずかしかないと思います。確実に。これらの構造の包括的なリストはありますか?