我目前有一个创建PipeFilter对象的PipeFilterFactory。这就是我使用工厂创建一些PipeFilter
的方式:
PipeFilterFactory pff = new PipeFilterFactory();
PipeFilter pipeFilter = pff.createPipeFilter();
我面临的问题是我在
PipeFilter
上定义了一个事件:public void onOutput(int i);
最初的想法是通过覆盖
PipeFilter
的onOutput
来运行它,但是让工厂创建它会带来一个问题,即现在我似乎无法做到(我想唯一的方法是在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);
}
}
}