用于在多个嵌套循环中验证数据的 Java 8 替代方案

标签 java java-8

我有一个关于在嵌套 for 循环中验证数据的问题。

public class Object1{
  private String obj1Name;

  private String obj1Desc;

  private List<Object2> object2List;

  //Setters and getters
}


public class Object2{
  private String obj2Name;

  private String obj2Desc;

  private List<Object3> object3List;

  //Setters and getters
}

public class Object3{
  private String obj3Name;

  private String obj3Desc;
  //Setters and getters
}

我希望验证所有对象中的 namedesc,而不是像下面这样使用嵌套循环:

List<Object1> object1List = getObject1List();

for(Object1 object1 : object1List ){
   if(object1.getObj1Name() == null){
     //throw error
   }

   if(object1.getObj1Desc() == null){
     //throw error
   }

   for(Object2 object2 : object1.getObject2List()){
        if(object2.getObj2Name() == null){
            //throw error
        }

        if(object2.getObj2Desc() == null){
            //throw error
        }

        //loop Object 3 ...
   }
}

有没有更好的方法呢?

最佳答案

我只是想在这里说一下,这样就没有人会做您想做的事 - 为此使用适当的框架,我个人会选择 Hibernate Validator - super 容易集成和使用 IMO。它将支持您没有任何问题的嵌套,并且在线有大量教程(甚至他们自己的也很好)以及如何实现它;提示:一些依赖项和一些注释,你就完成了。

关于用于在多个嵌套循环中验证数据的 Java 8 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53632516/

相关文章:

java - 使用 Java 比较器按另一个列表对对象列表进行排序

java - jdk8 日期转换中的错误?

java - Servlet 工具箱共享方法的线程安全

java - 将 Dropbox 文件加载到 JList Maven Java NetBeans 中?

java - JOOQ selectQuery for Record5

java - 在 Java 8 中,Executors.newWorkStealingPool() 是否也提供任务队列?

java - 如何阻止程序退出二维数组的边界

java - Spring MVC 验证模型

java - ifPresent 返回一些东西 orElse

java - 为什么 StringBuilder#append(int) 在 Java 7 中比在 Java 8 中更快?