《effective java》之六:方法

第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/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值