Classes Internas

6 respostas
R

Galera, tirem uma duvida,

Msg Erro = “local variable p_assunto is accessed from within inner class; needs to be declared final”

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) {

eu sei que se eu colocar final nos parametros ele resolve meu problema, mas eu queria entender pq quando eu utilizo o parametro em uma classe interna ele tem que ser declarado final…?

Vlw

6 Respostas

E

cara realmente eu não sei o pq da situação

mas caso o seu método ou classe tenha alguma caracteristica peculiar pra essa necessidade…

mas vai lah a definição:

Declarar uma variável como final ajuda a garantir o principio do menor privilégio, se uma variavel não deve ser alterada apos a sua instanciação, declara-se como final para proibir expressamente a modificação da mesma.

ps.: definição encontrada no livro Java Como Programar 4ª ED - Deitel
Capitulo 8 - 8.10 Variáveis de instância final, pag. 401

ps2.: definição sobre metodos e classes final, capitulo 9 - 9.13 Métodos e Classes final pag. 455

como se assim que vc passar os parametros para o método internamente dele esses parametros serão vistos como constantes…

agora o pq da necessidade disso no seu codigo, naum sei teria que ver maiores detalhes pra arriscar algum chute :roll:

espero ter te ajudado em algo

[]'s
Erko Bridee

R

anjosupremo, descobri… está na sua 2a obs:

os métodos que são declarados static ou private são implicitamente final

ou seja, quando eu declaro um método private ele já é final…

Vlw

M

“renan_daniel”:
anjosupremo, descobri… está na sua 2a obs:

os métodos que são declarados static ou private são implicitamente final

ou seja, quando eu declaro um método private ele já é final…

Vlw

não… :roll: , acontece q uma classe interna de método não pode acessar uma variável q não seja final do método

E

não sabia desse detalhe das classes internas…

pow os atributos final são tipo constantes q não podem ser alterados
se não geram erro

:cry:

R

Realmente esse detalhe de classes internas eu tb naum conhecia…

Vlw Matheus

M

e se esse método q tem uma classe interna dentro for statico, a classe interna, assim como o método, tb só poderá acessar outros membros estáticos da classe externa

Criado 10 de setembro de 2004
Ultima resposta 10 de set. de 2004
Respostas 6
Participantes 3