定义了一个Set后,我想把它初始化一下.
方法一. 利用了add函数, 如下:
public static void main(String[] args) {
Set testSet = new HashSet();
testSet.add("Monday");
testSet.add("Sunday");
System.out.println(testSet);
}
但是总觉得这样是不是有点麻烦,其实我也就使用一次,还新建了一个对象,于是可以用下面的方法二
方法二.
System.out.println(new HashSet() { {
add("morning");
add("afternoon");
}});
这种初始化的方法,比第一种要简单一些,利用的有两个Java知识点,一个是匿名内部类,一个是实例初始化块。
所谓匿名内部类也就是没有名字的内部类,一般只使用一次,并且必须要继承一个父类或者实现一个接口。而匿名内部类的实现方式也就是当新创建一个父类对象时,后边加一个大括号,即:
new HashMap(){};
当定义一个类的时候,一般会定义构造函数,有时候还会定义静态函数和实例初始化块,比如:
public class TestAnnoInnerClass {
TestAnnoInnerClass(){
System.out.println("