偶然看到一段代码,但是不明白这是什么用法? List<String> list = new ArrayList<String>() { { a
2018-02-10 10:25
295 查看
操作符 new 表明要 创建一个 List 类型的 对象/变量 list。
list里面存放的是一个数组列表(ArrayList) 对象,其下标,和普通数组的下标一样,是 int 类型,list的元素都是String类型
ArrayList<E>这个类,实现了接口 List<E>, 故可以将 ArrayList的任何对象的类型,如 list, 看作是 java.util.List 类型。
尖括号是泛型操作符。其中的参数 String 表明List 类型的 对象的元素类型均为字符串 String 类型。
一对里面无内容的圆括号表明被调用的构造方法无需参数,就是说,被调用的构造方法是缺省的/默认的。
内层花括号显示这个类定义里的代码块,其操作为:调用ArrauList类的成员方法 add(),先后将字符串 "a" 和 "b", 添加到此列表的尾部。只要调用这个类的构造方法,这个代码块都会被执行一次。
删掉所有的花括号: List<String> list = new ArrayList<String>();或仅删除内花括号: List<String> list = new ArrayList<String>(){} ; 结果都是: 创建了一个空的(不含字符串元素的) ArrayList 对象 list。
楼主出示的代码,其效果等同于:
list里面存放的是一个数组列表(ArrayList) 对象,其下标,和普通数组的下标一样,是 int 类型,list的元素都是String类型
ArrayList<E>这个类,实现了接口 List<E>, 故可以将 ArrayList的任何对象的类型,如 list, 看作是 java.util.List 类型。
尖括号是泛型操作符。其中的参数 String 表明List 类型的 对象的元素类型均为字符串 String 类型。
一对里面无内容的圆括号表明被调用的构造方法无需参数,就是说,被调用的构造方法是缺省的/默认的。
内层花括号显示这个类定义里的代码块,其操作为:调用ArrauList类的成员方法 add(),先后将字符串 "a" 和 "b", 添加到此列表的尾部。只要调用这个类的构造方法,这个代码块都会被执行一次。
删掉所有的花括号: List<String> list = new ArrayList<String>();或仅删除内花括号: List<String> list = new ArrayList<String>(){} ; 结果都是: 创建了一个空的(不含字符串元素的) ArrayList 对象 list。
楼主出示的代码,其效果等同于:
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b");
相关文章推荐
- 偶然看到c#的一段容器代码
- 求一段smartupload上传图片的代码,不需要保存到数据库,但是想在jsp页面选中文件夹图片后,立马可以显示
- 看了一段delphi android模拟点击的代码,但是不会用,留着以后研究
- 线程示例,一段没一点意义的代码,自已也不知道拿来做什么,跟着书上抄的
- 无意中看到的一段extjs 代码 关于tree 节点信息更新的
- JavaScript else If 语句用法 【每日一段代码44】
- 从代码里你可以看到什么?
- int 和 Integer 有什么区别。请简单的写一段有关自动拆装箱的代码。
- 从代码里你可以看到什么?
- 在JSP中看到"<!--"和"-->"包起来的代码,又不是注释,这个是什么意思呢?
- 从代码里你可以看到什么?
- iOS 中 当程序进入后台 但是程序员希望在程序进入后台的时候还可以运行一段代码时候可以做以下的操作
- 把下面的代码粘到地址栏里,打回车,你看到什么?
- 在jsp中默认写上的一段java代码表示basePath 的路径的具体的意思是什么?
- JavaScript的eval函数,用法,用来执行JavaScript代码,即将JavaScript代码加载入内存(但是并没有执行和触发,跟加载js文件是一个道理,即将js文件加载入内存,但是js)
- 浏览器兼容性问题,为什么同一段JavaScript代码,不同浏览器上为什么会产生不同效果,甚至bug?浏览器不就是严格按照JavaScript语法进行的吗?java代码为什么从来没听过有什么兼容问题?
- 偶然发现某人写了这么一段代码
- 分享一段看到的代码
- 浏览器兼容性问题,是什么?是同一段js、cs代码,不同浏览器有不同效果,甚至bug