我有以下代码:
Set<OWLNamedIndividual> individuals = reasoner.getInstances( tClass, false ).getFlattened();
for(OWLNamedIndividual it1 : individuals)
{
NodeSet<OWLNamedIndividual> names = reasoner.getObjectPropertyValues( it1, obj1 );
System.out.println(it1.getIRI().getShortForm() + " has objects:");
for(Node<OWLNamedIndividual> it2: names)
{
Iterator iter=it2.iterator();
while(iter.hasNext())
{
System.out.print("\t");
System.out.println(iter.next().toString());
System.out.println(iter.hasNext());
}
}
}
返回以下内容:
name has objects:
<http://www.test/#name>
false
<http://www.test/#name2>
false
内部hasNext接缝在外部不起作用。我需要检查最后一次迭代。这是什么问题?非常感谢。
答案 0 :(得分:4)
这里没有问题。当您致电next()
时,hasNext()
的值可能会发生变化。通过它的最后一次将打印为false
。在这种情况下,每个外部集合看起来每个只有一个元素。