Local variable p_assunto is accessed from within inner class

Pessoal, :grin:

Estou tentando compilar uma classe e estou recebendo a seguinte mensagem “[color=“darkblue”]local variable p_assunto is accessed from within inner class; needs to be declared final[/color]” :cry:

O codigo é o seguinte:

public static void agenda_email(String p_para,
	                            String p_assunto,
	                            String p_mensagem,
	                            String p_agente,
	                            int p_tempo_espera,
	                            int p_ta_tipo_aviso,
	                            int p_ta_sequencia) {

try
{

  Timer timer = new Timer();
  timer.scheduleAtFixedRate(new TimerTask() {
     public void run() {
        try
       {
         .......
             .....

          [color="red"]envia_email(p_para,p_assunto,p_mensagem);[/color]
        }
       catch (Exception a) {}
     }
	
   },p_tempo_espera,0);

}

catch (Exception b) {}

}

Como consigo resolver este problema ? :cry:

Valeu…

Para resolver este problema, acho que é só colocar o parametro final em p_assunto.

Ex:
<code> final String p_assunto</code>

Agora, eu é quem pergunto, pq ele dá esta msg?

ooopsss, foi mal, errei na utilizacao di BBCode heheheheh

pelo q eu entendi, vc não pode se referenciar a uma variável dentro de uma classe interna se ela não for “final”

tenta o seguinte:

public static void agenda_email&#40; final String p_para, final String p_assunto, final String p_mensagem, String p_agente, int p_tempo_espera, int p_ta_tipo_aviso, int p_ta_sequencia&#41; &#123;

flw

nao…nao pode mesmo
nem em classe anonima

voce pode declarar ela global
ou final…que funciona