优雅地实现入参非空判断

时间:2025-03-09 07:59:48

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;
    }   
    }

希望对大家有所帮助