Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
时间:2022-04-23
本文章向大家介绍Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
直接上代码:
1 public enum Boss {
2
3 INSTANCE;
4
5 private String name;
6
7 public void doSomeThing() {
8 System.out.println(name + " is doing something now...");
9 }
10
11 public String getName() {
12 return name;
13 }
14
15 public void setName(String name) {
16 this.name = name;
17 }
18
19 }
注:java中的enum是一个彻彻底底的class,可以自由添加其它属性、方法,所以完全可以当成一个class来用。
验证:
1 @Test
2 public void testSingleton() {
3
4 Boss b1 = Boss.INSTANCE;
5 b1.setName("张三");
6 b1.doSomeThing();//张三 is doing something now...
7
8 Boss b2 = Boss.INSTANCE;
9 b2.doSomeThing();//张三 is doing something now...
10
11 System.out.println(b1.equals(b2));//true
12
13 }
11行输出的true,已经证明了b1与b2是同一个对象,而且这种方式绝对防止反射调用私有构造器来破坏单例。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释