偶然看到一段代码,但是不明白这是什么用法? List list = new ArrayList() { { a

时间:2021-10-12 12:56:59
  1. 操作符 new 表明要 创建一个  List 类型的 对象/变量 list。

  2. list里面存放的是一个数组列表(ArrayList) 对象,其下标,和普通数组的下标一样,是 int 类型,list的元素都是String类型

  3. ArrayList<E>这个类,实现了接口 List<E>, 故可以将 ArrayList的任何对象的类型,如 list, 看作是 java.util.List 类型。

  4. 尖括号是泛型操作符。其中的参数 String 表明List 类型的 对象的元素类型均为字符串 String 类型。

  5. 一对里面无内容的圆括号表明被调用的构造方法无需参数,就是说,被调用的构造方法是缺省的/默认的。

  6. 内层花括号显示这个类定义里的代码块,其操作为:调用ArrauList类的成员方法 add(),先后将字符串 "a" 和 "b", 添加到此列表的尾部。只要调用这个类的构造方法,这个代码块都会被执行一次。
  7. 删掉所有的花括号: List<String> list = new ArrayList<String>();或仅删除内花括号: List<String> list = new ArrayList<String>(){} ; 结果都是: 创建了一个空的(不含字符串元素的) ArrayList 对象 list。
  8. 楼主出示的代码,其效果等同于:
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");