首页 > 编程语言 >Java 手动显示调用validate的实体属性验证

Java 手动显示调用validate的实体属性验证

时间:2022-10-12 09:35:13浏览次数:49  
标签:validateSet Java String 手动 messages m1 import validate

import org.springframework.util.CollectionUtils;

import javax.validation.ConstraintViolation;
import javax.validation.Valid;
import javax.validation.Validation;
import java.util.Set;


/**
 * 手动调用api方法校验对象
 */

public class MyValidationUtils {

    public static String validate(@Valid Object user) {
        Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory().getValidator().validate(user, new Class[0]);
        if (!CollectionUtils.isEmpty(validateSet)) {
            String messages = validateSet.stream()
                                      .map(ConstraintViolation::getMessage)
                                      .reduce((m1, m2) -> m1 + ";" + m2)
                                      .orElse("参数输入有误!");
            return messages;
        }
        return null;
    }

    public static String validate(@Valid Object user,Class clas) {
        Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory().getValidator().validate(user, clas);
        if (!CollectionUtils.isEmpty(validateSet)) {
            String messages = validateSet.stream()
                                      .map(ConstraintViolation::getMessage)
                                      .reduce((m1, m2) -> m1 + ";" + m2)
                                      .orElse("参数输入有误!");
            return messages;
        }
        return null;
    }
}

  

标签:validateSet,Java,String,手动,messages,m1,import,validate
From: https://www.cnblogs.com/firelang/p/16783373.html

相关文章

  • Java自学小白——IO流
    一、文件基础知识Java对文件的操作是通过IO流来实现的,想要了解IO流,就得先学习Java的File类                    I/O......
  • Java小白学习笔记——反射
    快速入门一,反射概述反射机制       上述程序的返回值  反射获取对象 方式一在编译阶段使用,一般多在通过读取配置文件获取方式二在加载......
  • java常用注解校验参数
    validation中内置的constraints注解描述@AssertFalse 所注解的元素必须是Boolean类型,且值为false@AssertTrue所注解的元素必须是Boolean类型,且值为true......
  • java 字体绘制
    一、前提1、如下图是组件的继承关系可以看到所有的组件都继承Component2、绘制函数界面显示或者窗口大小改变的时候,都会调用protectedvoidpaintComponent(Graphicsg......
  • 《Effective Java》
    《EffectiveJava》  第1章引言 第2章创建和销毁对象 第1条:考虑用静态工厂方法代替构造器 第2条:遇到多个构造器参数时要考虑用构建器 第3条:用私有构造器或者枚举......
  • JavaScript works behind the scenes -- Engine and Runtime
    whatisaJavaScriptengine?programthatexecutesJavaScriptcode.JavaScript引擎是运行JavaScript代码的程序。howengineworks?JavaScriptcontainsacallsta......
  • Java中equals和==区别
    “==”和equals的区别......
  • 【Java8新特性】- Optional应用
    Java8新特性-Optional应用......
  • 阿里云Java上传文件(含解压zip)
    1、maven<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.1.0</ver......
  • java二维数组
    java二维数组数组一经定义就不能改变长度packagearray;​publicclassArrayDemo04{  publicstaticvoidmain(String[]args){    int[][]num={{1......