たまたま職場で Java コードに出くわしました。シナリオは次のとおりです。 と の 2 つのクラスがありClassAますClassB。
ClassA内部には 4 つの public static final 文字列値以外は何もありません。その目的は、これらの値を次のように使用することですClassA.variable(理由は聞かないでください。これは私のコードではありません)。
ClassB輸入品ClassA。文字列値を編集しClassAてコンパイルしました。実行するとClassB、新しい値ではなく、古い値が使用されていることがわかりました。ClassBからの新しい値を使用するように再コンパイルする必要がありましたClassA。(インポートする他のクラスを再コンパイルする必要がありましたClassA!)
これは単に JDK 1.6 のせいなのか、それとも以前に再コンパイルすることを知っていたはずClassBです! 私を啓発します。:)