Inner classes em métodos locais

4 respostas
gustavobs

Minha dúvida é em relação a não poder usar a variavel local dentro da classe(dentro do método local)… entendo que o escopo dela é o escopo do método, e o fato de que ela será apagada e a possibilidade de nova referencia ser dada a instancia da classe interna geraram esta proibição, mas nao entendo pq ela sendo final ela pode ser usada…

4 Respostas

T

Quando ela é “final” ela permanece constante durante o tempo de vida do método local, portanto um parâmetro oculto, contendo esse valor, é passado para o método da “inner class”.
Esse é um truque do compilador que pode ser visualizado se você tentar “descompilar” a classe.

gustavobs

entendi…

tem algum livro que seja detalhista nestas coisas?
to estundo o da kathy scjp pra cert. ela normalmente explica bem, mas as vezes deixa vago, como esta questão.

dlt

Não conheço nenhum livro que seja detalhista nesse ponto, mas já vi explicações sobre isso em alguns blogs.
Se vc tiver paciência pra pesquisar isso no google, vai encontrar alguns. Encontrei esse daqui: http://techtracer.com/2008/04/14/mystery-of-accessibility-in-local-inner-classes/

gustavobs

muito bom o artigo cara, valeu mesmo… esse conhecimento de base que eu quero ter forte, isto faz a diferença entre programadores.

Criado 10 de dezembro de 2008
Ultima resposta 10 de dez. de 2008
Respostas 4
Participantes 3