类加载时创建,保证线程安全
从Color类中可以看出, Color对象是在静态域创建,由类加载时初始化,JVM保证线程安全,这样就能确保Color对象不会因为并发同时请求而错误的创建多个实例....反射创建单例对象
解决方案 : 在构造上述中判断,当多于一个实例时,再调用构造函数,直接报错.
反序列化时创建对象
解决方案 : 使用readResolve()方法来避免此事发生....你应该严格避免在Android上使用枚举.
导致很多开发者把它当成了教条,禁止在Android上使用枚举....Android Performance: Avoid using ENUM on Android
但是,一定不能使用枚举吗?...我觉得并不如此,当数据和行为有关联时,或者说数据受到行为的控制时,可以考虑使用策略枚举.