私はこのようなものを持っています:
request.findAllProjects().fire(new ExtReceiver<List<ProjectProxy>>() {
@Override
public void onSuccess(List<ProjectProxy> response) {
view.setProjects(response);
}
});
抽象クラスExtReceiverの匿名内部クラスです。ExtReceiverは、私が提供したいerrorHandlerでエラーを処理するためのものです。
public abstract class ExtReceiver<T> extends Receiver<T> {
private ErrorHandler errorHandler;
public ExtReceiver() {
}
@Inject
public void setErrorHandler(ErrorHandler errorHandler)
{
this.errorHandler = errorHandler;
}
@Override
public abstract void onSuccess(T response);
@Override
public void onFailure(ServerFailure error) {
errorHandler.exception(error);
}
@Override
public void onViolation(Set<Violation> errors) {
ValidationUtils.processViolation(errors);
}
}
新しい演算子を使用しているため、これが機能しない理由を理解しています。しかし、どうすればこのようなことができますか?私はその匿名のクラスを持ちたいので、それを自分のファイルなどに入れたくありません。そのerrorHandlerをどのように注入できますか?staticInjectionsについて考えましたが、これも機能しないように見えました(おそらく、匿名クラスを実行して作成した継承のためです)
通常のGuiceとは逆に、injector.getInstance()の呼び出しはわかりません。
詳細情報:これはrequestFactory呼び出しです