zoukankan      html  css  js  c++  java
  • javaBean非空校验(借鉴的)


    //校验实体类非空判断,精确到某个字段

    import
    lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author heyt * @date 2020/8/27 * */ @Slf4j public class BeanNotNullUtil { public static List<String> validateProperty(Object validateObj) { return validateProperty(validateObj,(String[])null); } /** * * @param cValidateObj 校验的实体类 * @param cIgnoreProperties 排除不需要校验的属性 * @return */ public static List<String> validateProperty(Object cValidateObj, String... cIgnoreProperties) { PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(cValidateObj.getClass()); List<String> ignoreList = (cIgnoreProperties != null ? Arrays.asList(cIgnoreProperties) : null); List<String> errList = new ArrayList<>(); for (PropertyDescriptor targetPd : targetPds) { Method readMethod = targetPd.getReadMethod(); if (readMethod != null && (ignoreList == null || !ignoreList.contains(targetPd.getName()))) { try { if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) { readMethod.setAccessible(true); } Object value = readMethod.invoke(cValidateObj); if (value instanceof String) { if (StringUtils.isEmpty((String) value)) { errList.add(cValidateObj.getClass().getSimpleName()+ "." + targetPd.getName() + "不可为空"); continue; } } if (value == null) { errList.add(cValidateObj.getClass().getSimpleName() + "." + targetPd.getName() + "不可为空"); } } catch (Throwable ex) { log.info(ex.getMessage()); } } } return errList; } public static void main(String[] args) { // OrderInfoVO tOrderInfoVO = new OrderInfoVO(); // tOrderInfoVO.setOrderAmount("123123"); // tOrderInfoVO.setOrderNo("ijnuhygv"); // tOrderInfoVO.setShopNo("asdfedc"); //// String[] strs = {"insureTransaction","shopName","transactionType","transactionTime","transactionNo","transactionDetail"}; // String[] strs = {"transactionType","transactionTime","transactionDetail",""}; // // List<String> tLists = validateProperty(tOrderInfoVO,strs); // System.out.print(tLists.toString()); } }
  • 相关阅读:
    计时器
    练习
    实现跨层组件通信(Vue3___defineComponent)
    微信内置浏览器h5监听手机返回键
    ECharts柱状图线形图
    easyui日期到月份
    uni-app传参
    js浏览器唯一标识
    知网论文查重如何查呢,免费的是真的吗?
    淘宝检测论文查重可靠吗?怎么检验?
  • 原文地址:https://www.cnblogs.com/heyt/p/13572108.html
Copyright © 2011-2022 走看看