Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java判断实体类是否为空

作者:ˉ吻干迩的'泪   发布日期:2026-06-18   浏览:126

public class EntityUtils {

    /**
     * 判断实体类是否为空
     * 该方法会检查传入的对象的所有字段是否为null或默认值(如0、false、空字符串等)
     *
     * @param entity 需要检查的实体类对象
     * @return 如果所有字段都为空或默认值,则返回true,否则返回false
     */
    public static boolean isEntityEmpty(Object entity) {
        if (entity == null) {
            return true;
        }

        // 获取类的所有字段
        Class<?> clazz = entity.getClass();
        for (Field field : clazz.getDeclaredFields()) {
            field.setAccessible(true); // 允许访问私有字段

            try {
                Object value = field.get(entity);
                if (value != null && !isEmpty(value)) {
                    return false; // 只要有一个非空字段就返回false
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }

        return true; // 所有字段都为空或默认值
    }

    /**
     * 检查基本类型和包装类型的默认值
     *
     * @param value 需要检查的值
     * @return 如果是默认值则返回true,否则返回false
     */
    private static boolean isEmpty(Object value) {
        if (value instanceof String) {
            return ((String) value).trim().isEmpty();
        } else if (value instanceof Collection) {
            return ((Collection<?>) value).isEmpty();
        } else if (value instanceof Map) {
            return ((Map<?, ?>) value).isEmpty();
        } else if (value instanceof Object[]) {
            return ((Object[]) value).length == 0;
        } else if (value instanceof Boolean) {
            return !(Boolean) value;
        } else if (value instanceof Number) {
            return ((Number) value).doubleValue() == 0.0;
        } else if (value instanceof Character) {
            return ((Character) value).equals('\u0000');
        }
        return false;
    }

    // 示例实体类
    public static class ExampleEntity {
        private String name;
        private int age;
        private boolean active;

        // Getters and Setters
    }

    public static void main(String[] args) {
        ExampleEntity entity = new ExampleEntity();
        System.out.println(isEntityEmpty(entity)); // 输出: true

        entity.setName("John");
        System.out.println(isEntityEmpty(entity)); // 输出: false
    }
}

上一篇:java判断集合是否为空

下一篇:java转小写字母

大家都在看

java url decode

java判断是windows还是linux

java原始数据类型

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java常用的设计模式有哪些

java list 查找

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站