枚举实现单例
package jess.day04;
/**
* @author Jess
* @date 2021/9/21
*/
public class Singleton {
/**
* 私有化无参构造
*/
private Singleton(){}
/**
* 创建单例的静态方法 在调用该静态方法时创建一个对象
*/
public static Singleton getSinleton(){
// 通过调用枚举类来调 new一个实例对象
return Instance.INSTANCE.instance;
}
/**
* 创建私有的枚举类
*/
private enum Instance{
// 静态属性 INSTANCE 调用无参构造
INSTANCE;
private final Singleton instance;
/**
* 私有无参构造 new一个实例对象
*/
private Instance(){
this.instance =new Singleton();
}
}
public static void main(String[] args) {
Singleton sinleton1 = Singleton.getSinleton();
Singleton singleton2 =Singleton.getSinleton();
System.out.println(singleton2==sinleton1);
//输出结果为ture
}
}