在一个文件中我有这个:
public DirectoryNode(String n, List<FileSystemNode> c) {
...
private List<FileSystemNode> nodes;
...
public Iterator<FileSystemNode> iterator() { return nodes.iterator(); }
...}
在另一个文件中,我有这个:
public class SizeVisitor implements FileSystemVisitor<Integer>
{...
public Integer visitDirectory(DirectoryNode d){
}
}
我的问题是,我如何在visitDirectory中创建一个for循环,它将采用d的迭代器,并遍历所有元素,然后在每个元素上调用方法“getSize”,该方法在文件系统节点? 非常感谢您的帮助。
最佳答案
你可能想做这样的事情:
public Integer visitDirectory (DirectoryNode d) {
for ( Iterator<FileSystemNode> iterator = d.iterator(); iterator.hasNext(); ) {
FileSystemNode fsn = iterator.next();
fsn.getSize();
}
}
您还可以让您的 DirectoryNode
实现 Iterable接口(interface),以便您可以使用 foreach 循环:
public Integer visitDirectory (DirectoryNode d) {
for ( FileSystemNode fsn : d) {
fsn.getSize();
}
}
关于java - 遍历迭代器中的元素,然后调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896454/