2013-12-10 45 views
1

我需要调用一个服务传递始终是相同的回调“AsyncCallbackAdapter”可以避免多次重写相同的回调?

auditingServicesRpc.tracePrivacy(requestDesc, ip, new AsyncCallbackAdapter<Integer>() { 
      @Override 
      public void onSuccess(Integer arg0) {} 

      @Override 
      public void onFailure(Throwable caught) { 
      super.onFailure(caught); 

     } 
    }); 

这是从GWT

import com.google.gwt.user.client.rpc.AsyncCallback; 
    public abstract class AsyncCallbackAdapter<T> implements AsyncCallback<T> { 
     private Boolean caughtException = false; 

     @Override 
     public void onFailure(Throwable caught) { 
      //log 
      GWT.log(caught.getMessage()); 

      //invalid session handling 
      if (caught instanceof InvocationException) { 
     ... 
      //other common handling 
     } 

     private void sessionExpired() { 
      ... 
     } 

     public Boolean getCaughtException() { 
      return caughtException; 
     } 

     public AsyncCallbackAdapter() { 

     } 
    } 

实现的AsyncCallback我想创建一个方法,像这样的abstrast超的AsyncCallbackAdapter AsyncCallbackAdapter

public static AsyncCallbackAdapter<T> getInstance(){ 

    return new AsyncCallbackAdapter<T>(){ 
     @Override 
     public void onSuccess(T result) { 
     }; 

     @Override 
     public void onFailure(Throwable caught) { 
      super.onFailure(caught); 

     } 
    }; 
} 

,但我不能,因为我“不能使静态参考无静电型T”。

你有什么想法!?!? 谢谢


@ user902383 谢谢,这个方法删除所有的错误,但我怎么可以用这种方法?我需要使用整数为T. 使用此:

AsyncCallbackAdapter.getInstance() 

Eclipse的告诉我: “ - 在类型IAuditingServiceRpcAsync不适用于该参数的方法tracePrivacy(字符串,字符串,的AsyncCallback)(字符串,字符串, AsyncCallbackAdapter)”

回答

1

尝试public static <T> AsyncCallbackAdapter<T> getInstance(){ ...}这应该解决您的问题

+0

谢谢你,这种方法删除所有的错误,但我怎么可以用这种方法?我需要使用Integer for T.使用: AsyncCallbackAdapter.getInstance() Eclipse告诉我:“ - IAuditingServiceRpcAsync类型中的tracePrivacy(String,String,AsyncCallback)方法不适用于参数(String,String, AsyncCallbackAdapter)“ – valerio

+0

'AsyncCallbackAdapter。 getInstance()' –

+0

它的工作原理...非常感谢你! – valerio

相关问题