Java方法的入参大部分都是需要校验的,开发过程也有很多时候需要对参数是否为空做判断。
但是在每个方法下面都写上对每个参数的非空判断就显得很臃肿,不够优雅。如果能够写一个方法类,无论多少参数,参数类型如何,都能对入参进行判断,就能使入参非空校验变得优雅。
方法类的入参属于动态参数,一般可以用数组Object[] args解决,但这样的话,需要把所有参数合并成一个数组,又不足够优雅。JDK1.5新增语法,新特性Object … args 刚好可以解决这个问题。
判断空参一般用Null==param;而String,Map,Array等类型需要增加与空串,空key的判断。
粗略地实现如下:
public static boolean paramCheck(Object ... args){
boolean flag = true;
if (args != null) {
for (int i = 0; i < ; i++) {
Object param = args[i];
//判断是否为Null
if (param == null) {
flag = false;
break;
}
//字符串等类型还需要做多重判断
if (param instanceof String && ().trim().length() == 0) {
flag = false;
break;
}
if (().isArray() && (param) == 0) {
flag = false;
break;
}
if (param instanceof Collection && ((Collection) param).isEmpty()) {
flag = false;
break;
}
if (param instanceof Map && ((Map) param).isEmpty()) {
flag = false;
break;
}
}
}else{
flag = false;
}
return flag;
}
}
希望对大家有所帮助