1. ホーム
  2. java

あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a

2022-02-09 19:49:51
  1. new 演算子は List 型のオブジェクト/変数リストが作成されることを示しています。

  2. list は、通常の配列の添え字と同様に int 型の ArrayList オブジェクトを保持し、list の要素は String 型です。

  3. ArrayList<E>クラスはList<E>インターフェースを実装しているので、listのようなArrayList型のオブジェクトは、java.util型として扱われます。

  4. 括弧内は汎用演算子です。String引数は、リスト型オブジェクトの要素がすべてString型であることを示します。

  5. 中に何も入っていない一対の括弧は、呼び出されたコンストラクタが引数を取らないこと、つまり呼び出されたコンストラクタがデフォルト/defaultであることを示します。

  6. 内側の括弧は、このクラス定義の中で、ArrauList クラスのメンバーメソッド add() を呼び出して、文字列 "a" と "b" を順次このリストの末尾に追加するコードのブロックを示しています。このコードのブロックは、このクラスのコンストラクタが呼び出されるたびに一度だけ実行されます。
  7. 中括弧をすべて削除します。List<String> list = new ArrayList<String>(); または、内側の中括弧のみを削除します。List<String> list = new ArrayList<String>(){}; どちらの結果も同じです。両方の結果:空の(文字列要素のない)ArrayListオブジェクトリストが作成されます。
  8. 所有者が示したコードは、次のような同等の効果を持ちます。
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");