swagger的@ApiModelProperty注解中有一个required字段,用来标识字段是否必填。在后端接口中,我们可能需要判断swagger model中的required字段是否为空。采用的方法是通过反射获取对象的所有字段,然后检查字段是否有@ApiModelProperty注解,如果有则判断required字段是否为true,如果为true则检查字段是否为空。

    /**
     * 检查swagger的required字段
     * @param obj 对象
     * @return boolean
     */
    public static boolean checkRequiredFields(Object obj) {
        // 获取对象的所有字段
        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            // 检查字段是否有@ApiModelProperty注解
            ApiModelProperty annotation = field.getAnnotation(ApiModelProperty.class);
            if (annotation != null && annotation.required()) {
                field.setAccessible(true);
                try {
                    // 检查字段是否为空
                    Object value = field.get(obj);
                    if (value == null) {
                        return false;
                    }
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
        }
        return true;
    }