![[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条 [Effective Java 读书笔记] 第二章 创建和销毁对象 第一条](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
第二章 创建和销毁对象
第一条 使用静态工厂方法替代构造器,原因:
- 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的
- 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧。。),比如书中 Boolean.valueOf(boolean)
public static final Boolean TRUE = new Boolean(true); public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
// 此处的TRUE和FALSE是早就创好的实例,不需要每次调用本方法时都去创建对象
} - 静态工厂方法可以返回任何原类型的子类型的对象,?????
- 静态工厂方法,在创建参数化类型实例时,使代码更简洁。比如书中所说的
//假设HashMap提供了这个静态工厂:
public static <K,V> HashMap<K,V> newInstance(){
return new HashMap<K,V>();
}
//那么:
Map<String,List<String>> m = HashMap.newInstance();
//比下面的更简洁:
Map<String,List<String>> m = new HashMap<String,List<String>>();