判断对象的属性是否为null改进

之前判断一个对象是否为空,没有判断父类的属性。后来发现getFileds方法可以获取父类的公有属性,加之继承关系的话,私有属性应该是不被继承的,所以做了如下改进。

class ObjectIsNull {
    public static boolean checkObjFieldIsNull(Object obj) throws IllegalAccessException {
        for(Field f : obj.getClass().getDeclaredFields()){
                f.setAccessible(true);
            //这里忽略static final 类型的属性,如若不需要可以去掉
        if(Modifier.isFinal(f.getModifiers())&&Modifier.isStatic(f.getModifiers())){
                continue;
            }
            if(!isEmpty(f.get(obj))){
                    return false;
            }
            f.setAccessible(false);
        }
        for(Field f : obj.getClass().getFields()){
            f.setAccessible(true);
            if(!isEmpty(f.get(obj))){
                f.setAccessible(false);
                    return false;
            }
            f.setAccessible(false);
        }
        return true;
    }
    //判断是否为空
    public static boolean isEmpty(Object obj) {
        if (obj == null) {
        return true;
        
        } else if (obj instanceof String && (obj.toString().trim().equals(""))) {
        return true;

        } else if (obj instanceof Number && ((Number) obj).doubleValue() < 0) {
        return true;

        } else if (obj instanceof Collection && ((Collection) obj).isEmpty()) {
        return true;

        } else if (obj instanceof Map && ((Map) obj).isEmpty()) {
        return true;

        } else if (obj instanceof Object[] && ((Object[]) obj).length == 0) {
        return true;

            }
            return false;
        }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,405评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 作者/盖是那么美 换个风格,临摹个熊猫飞天,色彩绚丽,眉开眼笑,萌萌哒,嗨皮下!! 用心作画,开心由己。
    盖是那么美阅读 303评论 36 18
  • 从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld"。当频繁操作字符串时,就会额...
    _浅墨_阅读 276评论 0 0
  • 妈妈擅长烤各种各样的云彩面包,有各种各样的形状,有小鸟的,有小狗的,有小猫的。今天妈妈烤了企鹅面包和雪人面包。爸爸...
    谭潭潭阅读 393评论 0 4