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".

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
In fase di compilazione mi compare, per entrambi le variabili, il seguente errore:

local variable inputev/outputev is accesed from within inner class; needs to be declared final
C'è un modo di risolvere la questione uscendone vivi? Vi prego di darmi una mano.

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.