【发布时间】:2011-06-15 10:57:58
【问题描述】:
我有一些代码为回调处理程序定义了一个匿名内部类。这个处理程序需要分配一个局部变量,见下文。我需要在回调中分配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());
}
}
【问题讨论】:
标签: java inner-classes anonymous-inner-class