Ciao, premetto che sono assolutamente inesperto di Java e quindi per molti di voi questo questo quesito sembrerà un insulto, ma vi prego di darmi una dritta su come risolvere la faccenda.
La mia situazione è questa: all'interno di un metodo vorrei modificare il valore di una variabile booleana (che intendo utilizzare come flag) e poi, all'esterno del metodo, in base a quello che è il valore della variabile, eseguire determinate azioni. Ok, sicuramente non sono stato chiaro a sufficienza, quindi vi posto il codice "incriminato".
In fase di compilazione mi compare, per entrambi le variabili, il seguente errore:codice:boolean inputev = false; // variabile che fungerà da Flag boolean outputev = false; // variabile che fungerà da Flag boolean connected = false; while (repeat > 0 && connected == false) { Thread.sleep(1); repeat--; Terminal srcTerm = provider.getTerminal(src); srcTerm.addObserver(new TerminalObserver() { public void terminalChangedEvent(TermEv[] evlist){ for(int i=0; i<evlist.length; i++) { if (evlist[i].getID() == CiscoRTPInputStartedEv.ID) { inputev = true; } else if (evlist[i].getID() == CiscoRTPOutputStartedEv.ID) { outputev = true; } } } }); if ( inputev == true && outputev == true ) { connected = true; } } // fine ciclo while
C'è un modo di risolvere la questione uscendone vivi? Vi prego di darmi una mano.local variable inputev/outputev is accesed from within inner class; needs to be declared final
Grazie!
P.S.: il frammento di codice che vedete fa parte di una funzione Java che serve a far iniziare una conferenza telefonica in un PBX della Cisco tramite l'utilizzo delle Cisco JTAPI.

Rispondi quotando
)
