У меня есть код, который определяет анонимный внутренний класс для обработчика обратного вызова. Этот обработчик должен назначить локальную переменную, см. Ниже. Мне нужно назначить 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
@Joel, спасибо, что указали это. Исправлена. – jjnguy
@ Эрик, почему бы не работать? – jjnguy