我有一个具有此功能的Abstract Iterator类
void iterate(){
while(this.hasnext()){
..this.next()..
}
}
如何传递将应用于下一个元素的任何任意函数。例如,有没有办法做
iterate(print)
? 最佳答案
在Java中,不可能直接将函数作为参数传递。相反,您需要使用一种方法来设置接口,如下所示:
interface Operate {
public void operate(Object o);
}
然后,您需要为要在
Object
上执行的每个不同操作实现接口。一个示例实现。
class Print implements Operate {
public void operate(Object o){
System.out.println(o.toString());
}
}
在您的代码中实现:
iterate(Operate o){
while(this.hasnext()){
o.operate(this.next());
}
}