テストのために、クラス内に匿名のネストされたクラスを作成するクイック「ダブルブレース」初期化を使用することがありますOuter
。次に例を示します。
static final Set<String> sSet1 = new HashSet<String>() {
{
add("string1");
add("string2");
// ...
}
};
編集
私は、この例がOuter
インスタンスへの参照を保持しているという以前の誤ったステートメントを修正しています。そうではなく、事実上、次のものと同等です。
static final Set<String> sSet2;
static {
sSet2 = new HashSet<String>() {
{
add("string1");
add("string2");
// ...
}
};
}
との両方がsSet1
、クラスsSet2
への参照を保持しない匿名のネストされたクラスで初期化されますOuter
。
これらの匿名クラスは本質的にstatic nested
クラスであるということですか?