我有一个具有此功能的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());
    }
}

10-04 11:59