我有一个具有这个功能的抽象迭代器类
void iterate(){
while(this.hasnext()){
..this.next()..
}
}
如何传入将应用于下一个元素的任意函数。例如,是否有办法执行 iterate(print)
?
最佳答案
在Java中,直接将函数作为参数传入是不可能的。相反,您需要使用一种方法设置接口(interface),如下所示:
interface Operate {
public void operate(Object o);
}
然后,您需要为要对 Object
执行的每个不同操作实现接口(interface)。
示例实现。
class Print implements Operate {
public void operate(Object o){
System.out.println(o.toString());
}
}
在您的代码中实现:
iterate(Operate o){
while(this.hasnext()){
o.operate(this.next());
}
}
关于java - 如何对每个项目进行迭代和执行一些任意操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1675631/