java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java数据校验

Java实现入参数据批量数据校验详解

作者:Xiao5xiao122

在业务处理中一般入参是单条数据,这样数据校验比较容易,但是这种方法对于集合数据的校验不适用,下面我们就来看看如何对入参数据进行批量数据校验吧

入参数据批量数据校验

在业务处理中一般入参是单条数据,这样数据校验比较容易,直接用注解标注对应的校验用注解就可以了,但是这种方法对于集合数据的校验不适用。但是业务中也有可能是传入的批量数据,还要校验每个字段值是否合规。我搜过其他猿友写的批量校验的逻辑,感觉很繁琐,所以我记录一下我的我感觉比较简便的方法,代码量减少,还能满足校验要求。废话不多说,看代码。

package com.sydata.zt.common.utils;

import javax.validation.Valid;
import java.util.*;

/**
 * 能被注解@Valid校验的List
 * @author XX
 * @date 2023-12-25
 */
public class ValidableList<E> implements List<E> {

    @Valid
    private List<E> list;

    public ValidableList() {
        this.list = new ArrayList<>();
    }

    public ValidableList(List<E> list) {
        this.list = list;
    }

    public List<E> getList() {
        return list;
    }

    public void setList(List<E> list) {
        this.list = list;
    }

    @Override
    public int size() {
        return list.size();
    }

    @Override
    public boolean isEmpty() {
        return list.isEmpty();
    }

    @Override
    public boolean contains(Object o) {
        return list.contains(o);
    }

    @Override
    public Iterator<E> iterator() {
        return list.iterator();
    }

    @Override
    public Object[] toArray() {
        return list.toArray();
    }

    @Override
    public <T> T[] toArray(T[] a) {
        return list.toArray(a);
    }

    @Override
    public boolean add(E e) {
        return list.add(e);
    }

    @Override
    public boolean remove(Object o) {
        return list.remove(o);
    }

    @Override
    public boolean containsAll(Collection<?> c) {
        return list.contains(c);
    }

    @Override
    public boolean addAll(Collection<? extends E> c) {
        return list.addAll(c);
    }

    @Override
    public boolean addAll(int index, Collection<? extends E> c) {
        return list.addAll(index, c);
    }

    @Override
    public boolean removeAll(Collection<?> c) {
        return list.removeAll(c);
    }

    @Override
    public boolean retainAll(Collection<?> c) {
        return list.retainAll(c);
    }

    @Override
    public void clear() {
        list.clear();
    }

    @Override
    public E get(int index) {
        return list.get(index);
    }

    @Override
    public E set(int index, E element) {
        return list.set(index, element);
    }

    @Override
    public void add(int index, E element) {
        list.add(index, element);
    }

    @Override
    public E remove(int index) {
        return list.remove(index);
    }

    @Override
    public int indexOf(Object o) {
        return list.indexOf(o);
    }

    @Override
    public int lastIndexOf(Object o) {
        return list.lastIndexOf(o);
    }

    @Override
    public ListIterator<E> listIterator() {
        return list.listIterator();
    }

    @Override
    public ListIterator<E> listIterator(int index) {
        return list.listIterator(index);
    }

    @Override
    public List<E> subList(int fromIndex, int toIndex) {
        return list.subList(fromIndex, toIndex);
    }
}

具体使用方法就很简单了,直接按照单个校验的方式添加注解,修改一下接收的集合就可以了

这样,批量校验的功能就可以了并且可以被复用。

到此这篇关于Java实现入参数据批量数据校验详解的文章就介绍到这了,更多相关Java数据校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文