Não sei se isso é realmente um Bug, alguem poderia me esplicar melhor. Quando implemento uma interface em uma classe e sobrecarrego o método da interface não acontece nenhum tipo de erro (Exemplo 1)...
Mas, quando implemento a interface em uma classe interna(Exemplo 2) ou instancio como classe anônima(Exemplo 3) o compilador me retorna um erro que nao pode encontrar o método. Método esse que esta na classe principal(UsoTeste) TesteListener.java:58: metodo() in cannot be applied to (int) metodo(0); ^ Mas, se eu alterar a assinatura do método funciona(metodo(int) --> metodo_nao_sobrecarregado(int) )!! Aguardo comentários.... Elvis Tanajura Vaz _______________________________________________________________________ Yahoo! Encontros O lugar certo para você encontrar aquela pessoa que falta na sua vida. Cadastre-se hoje mesmo! http://br.encontros.yahoo.com/
interface TesteListener{ public void metodo(); } class Teste{ TesteListener t; public Teste(TesteListener t){ this.t = t; } public void chamarListener(){ t.metodo(); } } // Teste com implementacao /*class UsoTeste implements TesteListener{ public Teste te; public UsoTeste(){ te = new Teste(this); te.chamarListener(); } public void metodo(){ System.out.println("Chamou o metodo"); metodo(0); } public void metodo(int i){ System.out.println("Chamou o metodo com parametro"); } }*/ // Teste com classe interna class UsoTeste{ public Teste te; public UsoTeste(){ te = new Teste(new Interna()); te.chamarListener(); } public void metodo(int i){ System.out.println("Chamou o metodo com parametro"); } public void metodo_nao_sobrecarregado(int i){ System.out.println("Chamou o metodo nao sobrecarregado"); } class Interna implements TesteListener{ public void metodo(){ System.out.println("Chamou o metodo"); metodo_nao_sobrecarregado(0) metodo(0); } } } // Teste com classe anonima /* class UsoTeste{ public Teste te; public UsoTeste(){ te = new Teste(new TesteListener(){ public void metodo(){ System.out.println("Chamou o metodo"); metodo(0); } }); te.chamarListener(); } public void metodo(int i){ System.out.println("Chamou o metodo com parametro"); } } */
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------