Java 8 Java 8-使用递归方法转换为Java流

Java 8 Java 8-使用递归方法转换为Java流,java-8,java-stream,Java 8,Java Stream,我想将以下代码转换为带有流和过滤器的Java8 private void iterateJavaNode(Iterable<? extends JavaNode> childs, StringBuilder builder) { if (childs == null || !childs.iterator().hasNext()) { return; } childs.forEach(node -> { if (node.ch

我想将以下代码转换为带有流和过滤器的Java8

  private void iterateJavaNode(Iterable<? extends JavaNode> childs, StringBuilder builder) {
    if (childs == null || !childs.iterator().hasNext()) {
      return;
    }
    childs.forEach(node -> {
      if (node.children() != null && node.children().iterator().hasNext()) {
        Iterator<? extends JavaNode> iterator = node.children().iterator();
        while (iterator.hasNext()) {
          JavaNode childNode = iterator.next();
          String imageName = childNode.getImage();
          if (imageName != null && !imageName.isEmpty()) {
            builder.append(imageName).append("|");
          }

          iterateJavaNode(childNode.children(), builder);
        }
      }
    });
  }

对于java流,还必须重复调用。
StreamSupport.stream(childs.spliterator(), false).forEach(node -> {
  StreamSupport.stream(node.children().spliterator(), false).findAny().filter(node1 -> node1 != null && node1 instanceof JavaNode && node1.getImage() != null && !node1.getImage().isEmpty());