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…
Inner classes em métodos locais
4 Respostas
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.
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.
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/
muito bom o artigo cara, valeu mesmo… esse conhecimento de base que eu quero ter forte, isto faz a diferença entre programadores.