我目前有一个创建PipeFilter对象的PipeFilterFactory。这就是我使用工厂创建一些PipeFilter的方式:

    PipeFilterFactory pff = new PipeFilterFactory();
    PipeFilter pipeFilter = pff.createPipeFilter();


我面临的问题是我在PipeFilter上定义了一个事件:

public void onOutput(int i);


最初的想法是通过覆盖PipeFilteronOutput来运行它,但是让工厂创建它会带来一个问题,即现在我似乎无法做到(我想唯一的方法是在PipeFilter的构造函数中?)

如何解决呢?

最佳答案

这个怎么样?

class Me {
    PipeFilterFactory pff = new PipeFilterFactory();

    PipeFilter pipeFilter = pff.createPipeFilter(
        new OutputEventHandler(){
            @Override
            public void onOutput(int i){
                Me.this.tellMe(i);
           }
       });
}




class PipeFilter {
    private final OutputEventHandler handler;
    //stuff
    void onOutput(int i){
        if(handler!=null){
            handler.onOutput(i);
        }
    }
}

10-08 17:32