首页 > 编程语言 >java中常用的判断数据为空的工具

java中常用的判断数据为空的工具

时间:2023-05-26 19:15:00浏览次数:46  
标签:info 常用 java commons isEmpty 为空 import org logger

一些工具的引入可以是的代码变得更加整洁,同时对于数据的判断会更加的全面

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.java</groupId>
    <artifactId>rabbitmq</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--添加fastjson依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>

        <!--StringUtils-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

        <!--MapUtils-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.2</version>
        </dependency>

        <!--CollectionUtils ObjectUtils-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>


    </dependencies>


</project>

  代码部分

package com.java;

/**
 * @Description:
 * @Author: Yourheart
 * @Create: 2023/5/26 17:29
 */
public class Cat {

    private String name;

    private Integer age;

    private String color;

    public Cat() {
    }

    public Cat(String name, Integer age, String color) {
        this.name = name;
        this.age = age;
        this.color = color;
    }
}

  

package com.java;

import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;


/**
 * @Description:
 * @Author: Yourheart
 * @Create: 2023/5/26 17:44
 */
public class ReflectUtil {

   private static final Logger logger= LoggerFactory.getLogger(ReflectUtil.class);

    /**
     * 判断获取的实体类对象是否为空
     * @param obj
     * @return
     */
    public static boolean isEmpty(Object obj) {
        boolean flag=true;
        if (ObjectUtils.isNotEmpty(obj)) {
            Class<?> aClass = obj.getClass();
            Field[] fields = aClass.getDeclaredFields();

            for (Field field : fields) {
                field.setAccessible(true);
                Object fieldValue = null;
                try {
                    fieldValue = field.get(obj);
                } catch (IllegalAccessException e) {
                    logger.error("获取{},异常:{}",fieldValue,e);
                }
                if (ObjectUtils.isNotEmpty(fieldValue)){
                    flag=false;
                }
            }

            return flag;
        } else {
            return flag;
        }
    }

}

  

package com.java;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * @Description:
 * @Author: Yourheart
 * @Create: 2023/5/26 16:19
 */
public class UtilsTests {

    private final Logger logger= LoggerFactory.getLogger(UtilsTests.class);

    @Test
    public void test(){
        String string="123";
        String string1=null;
        String string2="";
        logger.info(""+StringUtils.isEmpty(string));
        logger.info(""+StringUtils.isEmpty(string1));
        logger.info(""+StringUtils.isEmpty(string2));

        HashMap<String,Object> map=null;
        HashMap<String,Object> map1=new HashMap<>(16);
        HashMap<String,Object> map2=new HashMap<>(16);
        map2.put("aa","1111");
        logger.info("MapUtils "+ MapUtils.isEmpty(map));
        logger.info("MapUtils "+ MapUtils.isEmpty(map1));
        logger.info("MapUtils "+ MapUtils.isEmpty(map2));

        List<String> list=null;
        List<String> list1=new ArrayList<>(10);
        List<String> list2=new ArrayList<>(10);
        list2.add("111");
        logger.info("CollectionUtils "+ CollectionUtils.isEmpty(list));
        logger.info("CollectionUtils "+ CollectionUtils.isEmpty(list1));
        logger.info("CollectionUtils "+ CollectionUtils.isEmpty(list2));

        Cat cat=new Cat();
        Cat cat1=new Cat("兔兔",1,"黑色");
        Cat cat2=null;

        logger.info("实体类对象判断 "+ ReflectUtil.isEmpty(cat));
        logger.info("实体类对象判断 "+ ReflectUtil.isEmpty(cat1));
        logger.info("实体类对象判断 "+ ReflectUtil.isEmpty(cat2));



    }
}

  效果图

 

标签:info,常用,java,commons,isEmpty,为空,import,org,logger
From: https://www.cnblogs.com/q202105271618/p/17435590.html

相关文章

  • 五、JUC-Java内存模型JMM
    一、一些疑问什么是Java内存模型JMMJMM与volatile他们两个之间的关系JMM有哪些特性为什么要有JMM,他们为什么出现,功能和作用是什么happens-before先行发生原则是什么二、计算机硬件存储体系计算机存储结构,从本地磁盘到主存到CPU缓存,也就是从硬盘到内存到CPU一般对应的程序......
  • Anaconda Prompt常用指令的简介:
     1.condalist:列出已安装的所有包和版本信息。2.condacreate-nenv_name:创建一个新的环境env_name。3.condaactivateenv_name:激活新的环境env_name。4.condadeactivate:停用当前激活的环境。5.condainstallpackage_name:安装指定的包。6.condaupdatepackage_name:更......
  • Java大文件分片上传/多线程上传方案
    ​ 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。先说下要求:PC端全平台支持,要求支持Windows,Mac,Linux支持所有浏览器。支持文件批量上传支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W......
  • 学习日记——Java循环结构
    1.while循环①语法:while循环语法//参数的初始化inti=1;//循环条件while(i<10){//循环操作System.out.println("这是测试");//变更参数i++;}特点:先判断,再执行②实战案例:2.dowhile循环①语法:dowhile语法 //初始化参数inti=0;do{......
  • java怎么打印一个对象的内存地址
    在Java一般使用HashCode来代表对象的地址,但是两个相同的对象就不行了,两个相同的对象的hashcode是相同的。  如果要对比两个相同的对象的地址可以使用,System.identityHashCode(传输进去的参数是一个对象)......
  • Java笔记(十):函数式接口
    函数式接口有且仅有一个抽象方法的接口JDK8中,只有一个抽象方法的接口称为函数式接口,我们就能使用Lambda。针对一个接口中,是否有大于一个抽象方法?JDK8为我们新增了一个注解:@FunctionalInterface。它能够帮助我们检测这个接口是不是只有一个抽象方法,如果有两个抽象方法,则会报......
  • python中re正则一些用法及其常用正则表达式
    re.findall(pattern,string[,flags])re.findall(pattern,string[,flags])是Pythonre模块中的函数,用于在字符串中查找所有与正则表达式模式匹配的非重叠子字符串,并将它们作为列表返回。具体参数解释如下:pattern:一个正则表达式模式,用于指定要匹配的模式。string:要在其......
  • Java大文件分片上传/多线程上传实例解析
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1. 通过form表单向后端发送请求         <formid="postForm" action="${pageContext.request.contextPath}/UploadServlet" method="pos......
  • Java笔记(九):线程池
    三大方法Executors.newSingleThreadExecutor();//单个线程Executors.newFixedThreadPool(5);//固定的线程池大小Executors.newCachedThreadPool();//可伸缩的以上底层都是由ThreadPoolExecutor实现阿里开发手册:线程池不允许使用Executors去创建,而是通过ThreadP......
  • 【netstat】安装及常用操作
    Netstat是一款用于网络监测和管理的命令行工具,可以显示当前的网络连接、路由表、网络接口等信息。本文将介绍如何安装和使用Netstat。安装NetstatNetstat是Linux和Windows系统自带的工具,因此不需要额外安装。如果你使用的是MacOSX系统,可以通过Homebrew安装Netstat:brewinstal......