Java 获取返回的子节点无法循环错误
我有一个非常基本的代码片段,可以获取对象的currentNode并查看它的子节点。除了一些原因,这不起作用,我不明白为什么Java 获取返回的子节点无法循环错误,java,jackrabbit,sling,Java,Jackrabbit,Sling,我有一个非常基本的代码片段,可以获取对象的currentNode并查看它的子节点。除了一些原因,这不起作用,我不明白为什么getChildNodes()被假定为返回一个iterable子元素列表,但我得到的只是一个:“不能使用类型为node的元素和类型为iterable Node currentNode = resource.adaptTo(Node.class) for (Node n : JcrUtils.getChildNodes(currentNode)){ //do something
getChildNodes()
被假定为返回一个iterable子元素列表,但我得到的只是一个:“不能使用类型为node的元素和类型为iterable
Node currentNode = resource.adaptTo(Node.class)
for (Node n : JcrUtils.getChildNodes(currentNode)){
//do something
}
有什么想法吗?谢谢你的帮助。以下Sling JSP脚本适合我。Sling:DefineObject标记提供了currentNode
<%@page import="javax.jcr.Node,org.apache.jackrabbit.commons.JcrUtils" session="false"%>
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
<sling:defineObjects/>
<%
for (Node n : JcrUtils.getChildNodes(currentNode)){
out.println(n.getPath());
}
%>
这可能意味着返回的集合是Iterable
s而不是Node
。请尝试Iterable i
而不是Node n
@BheshGurung感谢您的回复,但我仍然收到一个错误,这次它说不能使用Iterable类型的元素和类型的集合循环iterable@DelmonYoungc您提供的ode看起来不错,我想这是另一个问题。是编译器错误还是运行时错误?请发布准确的错误消息。