1. ホーム
  2. java

[解決済み] JavaにおけるDouble Braceの初期化とは?

2022-03-15 12:20:53

質問

ダブルブレース初期化構文とは ( {{ ... }} を参照してください。

どのように解決するのですか?

ダブルブレースの初期化により、指定されたクラスから派生した無名クラスが作成されます ( 外側 を使用し、そのクラス内で初期化ブロックを提供します ( インナー で囲まれている) 例.

new ArrayList<Integer>() {{
   add(1);
   add(2);
}};

このダブルブレースによる初期化では、無名の内部クラスを作成することになることに注意してください。作成されたクラスは、暗黙のうちに this へのポインタは、周囲の外部クラスへのポインタです。通常は問題ありませんが、シリアライズやガベージコレクションの際などに問題が発生する可能性がありますので、注意が必要です。