2023-02-22
原文作者:键盘林 原文地址:https://blog.csdn.net/qq_37909508/category_8976362.html

枚举实现单例模式coding:

创建一个枚举的EnumInstance类

202302222102089301.png

修改Test

202302222102103272.png

运行结果,枚举类可以在序列号的情况下实现单例模式

202302222102138273.png

现在我们判断一下它的属性是不是在序列化的情况下是不是还是同一个

202302222102147344.png

运行结果

202302222102180565.png

那我们现在来分析一下它底层是怎么实现的

202302222102191906.png

进入到ObjectInputStream类中 的readEnum()方法

202302222102209057.png

202302222102231598.png

既然系列化不受影响,那反射会不会破坏枚举的单例呢?

通过报错信息我们可以知道,枚举类型是无法进行反射的。

202302222102246449.png

枚举类的使用

2023022221022726910.png

2023022221023083711.png

2023022221023390812.png

阅读全文