第39条:必要时进行保护性拷贝:
第40条:谨慎设计方法签名:
避免过长的参数列表,目标是四个参数或者更少,如果多于四个了就该考虑重构这个方法了。
三种方法可以缩短过长的参数列表:
①,把方法分解成多个方法,每个方法只需要参数的一个子集,不推荐。
②,创建辅助类helper class,用来保存参数的分组。这些辅助类一般为静态成员类。
③,从对象构建到方法调用都采用Builder模式,如果方法带有多个参数,尤其是其中某些事可选的时候,最好定义一个对象来表示所有参数,并允许客户端在这个对象上多次setter调用,玩了后执行execute,它对参数进行有效性检测并执行实际的逻辑。这种方式特别有用。
对语言boolean参数,优先使用两个元素的枚举类型。
第41条:慎用重载:
方法被重载overload后,要调用哪个overload方法是在编译时候决定的,而不是运行时,于是会产生各种bug
方法覆盖override是在运行时候决定调用父类还是子类的方法。这个跟overload完全不一样。
public class SetList {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<Integer>();
List<Integer> list = new ArrayList<Integer>();
for (int i = -3; i < 3; i++) {
set.add(i);
list.add(i);
}
for (int i = 0; i < 3; i++) {
set.remove(i);
list.remove(i);
}
System.out.println(set + " " + list);
}
}
第42条:慎用可变参数:
第43条:返回零长度数组或者集合,而不是null:
第44条:为所有导出API元素编写文档注释:
本人博客已搬家,新地址为:http://yidao620c.github.io/