enum类型
实例
public enum SingleTon {
INSTANCE_1,
INSTANCE_2;
SingleTon() {
System.out.println("SingleTon constructor invoked...");
}
}
测试
@Test
public void enumSingleTonTest(){
SingleTon singleTon1 = SingleTon.INSTANCE_1;
System.out.println("after instantiation singleTon1...");
SingleTon singleTon2 = SingleTon.INSTANCE_2;
}
运行结果
SingleTon constructor invoked...
SingleTon constructor invoked...
after instantiation singleTon1...
可以看到在初始化singleTon1
的时候,调用了singleTon1
的构造函数,也调用了singleTon2
的构造函数,但在调用singleTon2
实例化时,没有调用构造函数,也就是说,enum
类型初始化一个实例的时候,会调用所有实例的构造函数,并且enum
类型默认的构造函数是private
类型