java回调,在接口实现内部取消IBE侦听器

java回调,在接口实现内部取消IBE侦听器,java,callback,Java,Callback,我想实现如下的回调系统(伪代码): 这段代码的意思是,在收到消息后,我想从以后的通知中取消屏蔽。我发现很有吸引力,在回调里面有这个动作 以下是我的实际实现: final WebServiceMsgListener wml = new WebServiceMsgListener() { public void onMsgNotify(JSONObject response, int ecode) { Log.v(TAG, "getSetStateProgressBar MSG_MG

我想实现如下的回调系统(伪代码):

这段代码的意思是,在收到消息后,我想从以后的通知中取消屏蔽。我发现很有吸引力,在回调里面有这个动作

以下是我的实际实现:

final WebServiceMsgListener wml = new WebServiceMsgListener()
{
  public void onMsgNotify(JSONObject response, int ecode)
  {
    Log.v(TAG, "getSetStateProgressBar MSG_MGT_STATICINFO: onMsgNotify ecode" +
       ecode);
    authDelegate.unsetMsgListener(wml);
  }
};

authDelegate.addMsgListener(NAOMsg.MSG_MGT_STATICINFO, wml);
不幸的是,我当前的实现显示了eclipse错误:“局部变量wml可能尚未初始化”

问题:我如何才能绕过这个问题,最终在回调内部解绑,而不出现此错误?

将代码更改为:

authDelegate.unsetMsgListener(this);
引用当前对象(在执行此语句时,其
onMsgNotify()
正在执行)


注意:尽管变量
wml
可用于新对象,但在创建对象时它尚未初始化,因此出现错误。它在对象完全创建后立即初始化。

我不知道为什么在我提交相同答案之前,chrome没有显示新答案消息:)+1
authDelegate.unsetMsgListener(this);