Ho un codice che definisce una classe interna anonima per un gestore di callback. Questo gestore deve assegnare una variabile locale, vedi sotto. Devo assegnare resp
nel callback e fare riferimento ad esso verso la fine della funzione. Sto ottenendo questo errore in Eclipse però:Accesso alle variabili dalla classe interna
La finale variabile locale resp
non può essere assegnato, dal momento che è definito in un tipo di inclusione
Come posso risolvere questo problema?
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 deve essere inizializzato. – Joel
@ Joel, grazie per averlo indicato. Fisso. – jjnguy
@Erick, perché non dovrebbe funzionare? – jjnguy