Anonymous inner classes

2 respostas
Foxlol

Galera, to com uma dúvida quanto as anonymous inner classes.

Tipo, quando eu uso uma dentro de um método, como no caso abaixo:

public void mostrar(new Conteudo() {
   System.out.println("Teste");
});

O Conteudo no caso é uma interface. Eu andei lendo sobre e entendi que o compilador automaticamente cria uma classe que implementa esta interface contendo o que tem na inner class anonima.

Eh isso ou eu entendi tudo errado?

Vlw.

2 Respostas

quikkoo

é ± isso mesmo, é criado uma classe sem nome, usada apenas pra ser “retornada” como parâmetro dessa função, só que vc tb precisa escrever as funções abstratas dessa interface ou da classe abstrata, ex:

abstract class A
{
	public abstract void a();
	public void f()
	{
		System.out.println("A.f()");
	}
}

interface I
{
	public abstract void i();
}

public class T
{
	public static void t(A a)
	{
		a.a();
		a.f();
	}

	public static void t(I i)
	{
		i.i();
	}

	public static void main(String args[])
	{
		t(new A() {
			public void a()
			{
				System.out.println("A.a()");
			}
		});

		t(new I() {
			public void i()
			{
				System.out.println("I.i()");
			}
		});
	}
}

flw, t+

Foxlol

Bacana…vlw veio!

Criado 29 de maio de 2008
Ultima resposta 29 de mai. de 2008
Respostas 2
Participantes 2