读编写高质量代码整理(一)

在毕业工作的这两个月里,项目开发过程中总有些代码自己感觉写的不漂亮,总感觉会有更好的方式,然而时间又有限,所以在不影响程序运行的情况下就搁在一边了,然而有这样的疙瘩在心里总感觉不爽。所以工作之余,拜读改善java程序的151个建议这本书,并根据自己实际情况,做出整理。下面的都以建议的形式给出,代码千变万化,这里介绍的是比较高质量的建议写法。
下边是昨天看的一些知识整理:避免带有变长参数的方法重载

在项目的开发中,我们有需要把不确定数量的参数传递到方法,java5直接都是把形参定义成Collection接口或其子类类型,亦或是数组,这种方法的缺点是需要对实参进行判断和筛选,比如实参为null或者长度为0的Collection或数组,这是书上的原话,其实在实际项目中都要进行判null操作,比如

public void fun2(Collection<Integer> c) {
		if(c != null)
		for(int tmp :c) {
			System.out.println(tmp);
		}
	}
	public void fun(int... var) {
		if(var != null)
		for(int tmp :var) {
			System.out.println(tmp);
		}
	}

 

 如果不判null,就有可以抛NullPointerException

 

public class demo4 {
	public void foo(int a,int b) {
		System.out.println("this is fixed args method");
	}
	public void foo(int a,int... b) {
		System.out.println("this is variable args method...");
	}
	public static void main(String[] args) {
		demo4 d = new demo4();
		d.foo(1, 2);
		d.foo(1, 2,3);
	}
}
/**
 * 	d.foo(1,2)为什么会调用第一个foo方法?编译器是如何实现的?
 * 	因为int是一个原生数据类型,而数组本身是一个对象,编译器"偷懒",于是从最简单的开始"猜想"
 * 	只要符合编译通过,则最先调用
 * 为了让使代码更具可读性,建议考虑不用变长参数的方法重载
 */

 

this is fixed args method
this is variable args method...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值