如何写出一个优雅的代码第三集~技巧篇

技巧一:

慎用可变参数

在需要写可变参数的时候,一定要注意的是,可变参数有可能参数个数为0,这个时候可能会导致异常,那么为了确保在传输参数的时候一定至少有一个数或者说,确保这个方法传入的参数至少有一个,这个时候可以使用下面的方式。这样当一个参数都不传的时候,编译是不通过的,所以避免了发生错误。
 

/*
 *可变参数要谨慎使用
 */
public class VarArags {
	//累加方法:可变参数 0~很多
	static int sum(int... args) {
		int sum = 0;
		if(args.length==0){
			//异常处理
		}
		for (int arg : args)
			sum += arg;
		return sum;
	}

	//累加方法:可变参数 1~很多
	static int sum1(int first ,int... args) {
		int sum = 0;
		//if(first)
		if(args.length==0){
			//异常处理
		}
		for (int arg : args)
			sum += arg;
		return sum;
	}


	public static void main(String[] args) {
		System.out.println(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
		sum();
	}
}

 

技巧二:

如何处理null

在写一个工具类的时候,如果条件不满足,通常我们需要返回一个null,可是对于调用方来说这是一个非常不友好的,那么通常我们会用Collections.EMPTY_LIST来返回一个空的集合。这样调用方就不需要再次进行判断是否非null。
 

public  class Tools {
    private Tools(){
    }
    public static List find13(){
        ///啪啪啪的代码
        //return null;
        return Collections.EMPTY_LIST;
    }

    public static void main(String[] args) {
        List list = find13();
        if(list ==null){
            //空处理
        }

    }
}

技巧三:

JDK已经为我们提供了几个标准的异常,我们在使用的时候可以直接用他们的。如果传入的参数不符合条件,那么我们可以抛出一个异常,他就是IllegalArgumentException

如果接收的对象状态不对,那么我们可以抛出一个IllegalStateException。

如果接收的参数为null我们可以抛出一个空指针异常NullPointerException。

如果在做某件事的时候,条件不满足,那么可以使用,UnsupportedOperationException。
 

public class StandardException {
    public static void main(String[] args) throws Exception {
        int count =0;
        if(count<0){//调用者传递的参数不合适
            throw new IllegalArgumentException("");
        }
        int state =0;
        if(state!=1){//接收的对象状态不对
            throw new IllegalStateException("");
        }
        Object o = new Object();
        if(o==null){//接收的对象为空
            throw new NullPointerException("");
        }
        //返回结果---找不到对象!
    }
    protected boolean tryAcquire(long arg) {
        throw new UnsupportedOperationException();
    }
}

技巧四:

在使用局部变量的时候,应该尽量的缩小作用域的范围,也就是说哪里需要就在哪里写,不要总在开头部分统一定义,这样有可能会在不需要的时候,可能不注意的时候会构成错误或者干扰。

在需要使用字符串进行频繁的进行累加操作的时候,尽量不要使用加号,尽量使用stringbuffer。尤其是在写log日志的时候。在进行字符串拼接的时候,已经无意中创建了对象,那么这时候效率是非常低的,这个时候可以使用stringbuffer。或者通过log的占位符的方式来写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值