我有一些代码为回调处理程序定义了一个匿名内部类。这个处理程序需要分配一个局部变量,见下文。我需要在回调中分配resp
,并在函数结束时将其引用。我在Eclipse中收到此错误但是:从内部类访问变量
最后的局部变量resp
无法分配,因为它是在一个封闭的类型
我怎样才能解决这个定义?
DoorResult unlockDoor(final LockableDoor door) {
final UnlockDoorResponse resp;
final boolean sent = sendRequest(new UnlockDoorRequest(door),
new ResponseAction() {
public void execute(Session session)
throws TimedOutException, RetryException, RecoverException {
session.watch(UNLOCK_DOOR);
resp = (UnlockDoorResponse)session.watch(UNLOCK_DOOR);
}
});
DoorResult result;
if (!sent) {
return DoorResult.COMMS_ERROR;
}
else {
return DoorResult.valueOf(resp.getResponseCode());
}
}
ResponseWrapper需要初始化。 – Joel 2011-01-25 20:16:08
@Joel,谢谢你的指出。固定。 – jjnguy 2011-01-25 20:17:18
@Erick,为什么这不工作? – jjnguy 2011-01-25 20:18:33