私はJava4を使用しています。少し前に、パブリッククラスで次のように宣言された変数に出くわしました。
final private static Set name = new HashSet(){
{
add(object1);
...;
add(objectN);
}
};
状況によっては、実行時にオブジェクトを追加(または削除)する必要がありました。
このクラスには、オブジェクトを追加または削除する前に呼び出されたパブリックコンストラクターがありました。
最終変数は定数として扱われるため、実行時に.add(object)メソッドと.remove(object)メソッドを呼び出すことができないと思いました。しかし、とにかくそれを行いました。追加と削除の操作を実行するための2つのパブリックメソッドを作成し、それが機能しました。
なんで?コンパイルしないか、実行時に何らかの例外をスローすることを期待していました。
誰かが説明できますか?
どうもありがとうございます、
よろしくお願いします