校验参数是否为空,但是参数个数不确定的工具类如何写?

今天一个同事问了一个问题,我回单(报文)给对方,但是对方会对一些参数进行校验,校验失败,就不签收,但是这个参数有时候会是两个,有时候会校验三个,不确定参数个数,我想写一个工具类,用以满足这个情景,校验不过关的,就不调接口进行签章发送,问这个工具类应该如何写?

如果不封装一个工具类,那么可能就会频繁地在if处进行判断更改,比如像这种:

if(StringUtils.isNotEmpty(a) && StringUtils.isNotEmpty(b) && ……){

}

如果有10个参数,那岂不是要用10个&&,这种代码是十分不和谐的,所以就必须封装一个工具类,进行参数校验,但是参数个数不确定,我们应该如何写呢?其实灰常灰常简单,Java中不是有一种实参个数可变的写法吗?就像这种:

import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * 签章发送前需要校验参数工具类
 * 
 * @author guxf
 *
 */
public class CheckParaUtil {

	public static  boolean checkResult(T... pa) {
		boolean checkBoolean = true;
		for (Object temp : pa) {
			try {
				if (StringUtils.isEmpty(ObjectUtils.toString(temp))) {
					checkBoolean = false;
					break;
				}
			} catch (Exception e) {
				System.out.println("校验参数异常==" + e.getMessage());
			}
		}
		return checkBoolean;
	}

}

其实这种写法,在很多底层源码中非常常见,比如我们经常用到的Array.asList()底层写法:

校验参数是否为空,但是参数个数不确定的工具类如何写?_第1张图片

再比如,我们之前有说到一个工具流关闭类,其实都是一样的道理,多看底层,多思考,多总结,才会进步!

你可能感兴趣的:(基础)