我们创建并初始化一个对象,往往有多种方法,多少人知道{}也是一种?这种方法独特,是不是一个良好的特性呢?
普通初始化
通常我们会这样创建对象并初始化,如下创建一个List:
List<String> list = new ArrayList<>();
list.add("Linux");
list.add("Windows");
list.add("Mac");
assertTrue(list.contains("Linux"));
主要分为两步:(1)创建对象;(2)初始化数据。
双大括号法
利用这种方法,我们可以把创建和初始化写在一起:
list = new ArrayList<String>() {
{
add("Linux");
add("Windows");
add("Mac");
}
};
assertTrue(list.contains("Mac"));
好处与坏处
好处:
(1)相对普通的看起来行数更少(不考虑换行等);
(2)可读性更高;
(3)创建和初始化在同一个表达式里一起完