当前位置: 首页 > 编程笔记 >

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

伍心水
2023-03-14
本文向大家介绍java 获取对象中为null的字段实例代码,包括了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的字段实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

 类似资料:
  • 我有一个可选对象: 我想返回或如果为空返回。 我们是否有比遵循更复杂的方法来实现这一点?

  • 问题内容: 说我有一个具有一些成员变量的类,一个或多个是具有成员变量的另一个类。如何获得两个类中每个变量的值? 我可以通过以下方式获取变量:通过调用Foo对象的值,然后再次对其进行迭代以获取子类变量。 但是,如何在没有该类实例的情况下获取每个子类成员变量的值?我的平凡示例之所以有用,是因为该类的每个实例的变量都相同,因此我可以调用 我想如果能以某种方式从字段中获取对象的实例,那可能会起作用? 提前

  • 本文向大家介绍Java中Console对象实例代码,包括了Java中Console对象实例代码的使用技巧和注意事项,需要的朋友参考一下 在JDK 6中新增了java.io.Console类,可以让您取得字节为基础的主控台装置,例如,您可以藉由System新增的console()方法取得标准输入输出装置的Console对象,并利用它来执行一些简单的主控台文字输入输出,例如: ConsoleDemo.

  • 本文向大家介绍Java对象流实例代码,包括了Java对象流实例代码的使用技巧和注意事项,需要的朋友参考一下 将日期对象和向量对象写入文件,然后从文件中读出并输出到屏幕上 对象输入流)可读取使用对象输出流写入的原始数据和类型,与文件输入输出流一起可以实现对象的持久性存储。 结果: Fri Jul 24 11:28:01 CST 2015 [不求有功, 才华出众, 瞬息万变] 成功构建 (总时间: 2

  • 向createProxy和getProxy这两个方法传了个接口类型的类,为什么生成代理对象为null呢【吐血】大佬们救救

  • 问题内容: 情况:我收集了文档,每个文档都包含以下字段:“ _ id”(ObjectId),“ userId”(String),但也可以是字段“ files”(Object)。 当我这样做时: 结果,我得到了所有记录,这很好。 但是,当我这样做时,仅在“文件”字段存在的地方获取记录-结果是错误的。 是否由于我试图获取“对象”字段而发生错误?以及如何使用查询或条件解决此问题? 问题答案: 您可以构造