我有一个名为ControladorImpressaoDAV的类,它扩展了ControladorBase:
public class ControladorImpressaoDAV extends ControladorBase {
.
.
.
}
public abstract class ControladorBase implements IProcessamentoDispatcher, EventHandler<WorkerStateEvent> {
.
.
.
public void handle(WorkerStateEvent evento) {
StatusRetorno status = (StatusRetorno) evento.getSource().getValue();
despacharProcessamento(StatusProcessamento.FINALIZADO, status);
if (status == StatusRetorno.SUCESSO)
exibirMensagemSucesso();
else
exibirMensagemErro(status);
}
.
.
.
}
由于当JavaFX调用 handle 方法时行为相同,因此无需在ControladorImpressaoDAV中覆盖此方法。但是,当我在ControladorImpressaoDAV实例中时,只有在我覆盖此方法时才能拦截此方法:
@Pointcut("execution(* com.hrgi.pdv.controladores.ControladorImpressaoDAV.handle(..))")
protected void terminouImprimirDAV(){}
有没有办法只有当它在ControladorImpressaoDAV实例中而不覆盖handle方法时才能拦截handle方法?
答案 0 :(得分:0)
扩展您的基类类似
public abstract class ControladorBase implements IProcessamentoDispatcher, EventHandler<WorkerStateEvent> {
.
.
.
public void handle(WorkerStateEvent evento) {
handled(evento);
StatusRetorno status = (StatusRetorno) evento.getSource().getValue();
despacharProcessamento(StatusProcessamento.FINALIZADO, status);
if (status == StatusRetorno.SUCESSO)
exibirMensagemSucesso();
else
exibirMensagemErro(status);
}
protected void handled(WorkerStateEvent evento){};
.
.
.
}
现在任何子类都可以通过oveeriding方法获得有关已处理事件的信息。