我有一个具有此功能的Abstract Iterator类
void iterate(){
while(this.hasnext()){
..this.next()..
}
}
Run Code Online (Sandbox Code Playgroud)
如何传入将应用于下一个元素的任意函数.例如,有办法iterate(print)吗?
在Java中,不可能直接将函数作为参数传递.相反,您需要使用一个方法设置接口,如下所示:
interface Operate {
public void operate(Object o);
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要为要执行的每个不同操作实现接口Object.
一个示例实现.
class Print implements Operate {
public void operate(Object o){
System.out.println(o.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
在您的代码中实现:
iterate(Operate o){
while(this.hasnext()){
o.operate(this.next());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |