java 获取对象中为null的字段实例代码

 更新时间:2019年04月11日 14:50:25   投稿:mrr  
这篇文章主要介绍了java 获取对象中为null的字段实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述:

private static String[] getNullPropertyNames(Object source) {
    final BeanWrapper src = new BeanWrapperImpl(source);
    java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();

    Set<String> emptyNames = new HashSet<>();
    for(java.beans.PropertyDescriptor pd : pds) {
      Object srcValue = src.getPropertyValue(pd.getName());
      if (srcValue == null) emptyNames.add(pd.getName());
    }
    String[] result = new String[emptyNames.size()];
    return emptyNames.toArray(result);
  }

PS:将Java对象中属性值为null获取到

话不多说,直接贴代码,这里可以进行对json对象参数进行校验的,找到不为空的参数,或者对象所有属性都不为空这样的校验,也许就方便多了呢。

public static List<String> getValue(Object object,List<String> list){
  Field[] field = object.getClass().getDeclaredFields();
  for(int j=0 ; j<field.length ; j++){
    String name = field[j].getName();
    name = name.substring(0,1).toUpperCase()+name.substring(1);
    String type = field[j].getGenericType().toString();
      Method m;
      Object value;
      try {
        m = object.getClass().getMethod("get"+name);
        value = m.invoke(object);
        if(value == null || "".equals(value)){
          list.add(name);
        }
      } catch (IllegalAccessException e) {
        e.printStackTrace();
      } catch (IllegalArgumentException e) {
        e.printStackTrace();
      } catch (InvocationTargetException e) {
        e.printStackTrace();
      } catch (NoSuchMethodException e) {
        e.printStackTrace();
      } catch (SecurityException e) {
        e.printStackTrace();
      }
  }
  return list;
}

总结

以上所述是小编给大家介绍的java 获取对象中为null的字段实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • SpringBoot中Controller的传参方式详细讲解

    SpringBoot中Controller的传参方式详细讲解

    这篇文章主要介绍了SpringBoot在Controller层接收参数的常用方法,Controller接收参数的常用方式总体可以分为三类,第一类是Get请求通过拼接url进行传递,第二类是Post请求通过请求体进行传递,第三类是通过请求头部进行参数传递,下面我们来详细看看
    2023-01-01
  • springboot基于Redis发布订阅集群下WebSocket的解决方案

    springboot基于Redis发布订阅集群下WebSocket的解决方案

    这篇文章主要介绍了springboot基于Redis发布订阅集群下WebSocket的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java微服务的打包问题解决

    Java微服务的打包问题解决

    本文主要介绍了Java微服务的打包问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 分析Java中为什么String不可变

    分析Java中为什么String不可变

    Java中为什么String是不可变性的。今天我们从多角度解析为什么Java把String做成不可变的。
    2021-06-06
  • java编程队列数据结构代码示例

    java编程队列数据结构代码示例

    这篇文章主要介绍了java编程队列数据结构代码示例,简单介绍了队列的相关基础知识,然后通过实例向大家展示其实现方法,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java中线程上下文类加载器超详细讲解使用

    Java中线程上下文类加载器超详细讲解使用

    这篇文章主要介绍了Java中线程上下文类加载器,类加载器负责读取Java字节代码,并转换成java.lang.Class类的一个实例的代码模块。本文主要和大家聊聊JVM类加载器ClassLoader的使用,需要的可以了解一下
    2022-12-12
  • java中LinkedList使用迭代器优化移除批量元素原理

    java中LinkedList使用迭代器优化移除批量元素原理

    本文主要介绍了java中LinkedList使用迭代器优化移除批量元素原理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • SpringCloud微服务基础简介

    SpringCloud微服务基础简介

    今天带大家学习一下SpringCloud微服务的相关知识,文中有非常详细的图文示例及介绍,对正在学习SpringCloud微服务的小伙伴们很有帮助哦,需要的朋友可以参考下
    2021-05-05
  • SpringBoot整合mybatis结合pageHelper插件实现分页

    SpringBoot整合mybatis结合pageHelper插件实现分页

    在本篇文章里小编给大家整理的是关于SpringBoot整合mybatis使用pageHelper插件进行分页操作相关知识点,需要的朋友们学习下。
    2020-02-02
  • Java基础篇之serialVersionUID用法及注意事项详解

    Java基础篇之serialVersionUID用法及注意事项详解

    这篇文章主要给大家介绍了关于Java基础篇之serialVersionUID用法及注意事项的相关资料,SerialVersionUID属性是用于序列化/反序列化可序列化类的对象的标识符,我们可以用它来记住可序列化类的版本,以验证加载的类和序列化对象是否兼容,需要的朋友可以参考下
    2024-02-02

最新评论