Existem métodos anônimos em Java?

3 respostas
O

Nestes últimos meses, vez ou outra, precisei lidar com funções anônimas (os famosos lambdas, comuns em programação fucional) em meus programas (por exemplo, utilizando EmacsLisp para remapear o teclado no Emacs, convertendo caracteres acentuados em comandos LaTeX apropriados, e, mais recentemente, num utilitário Python que estou escrevendo para realizar algumas tarefas no meu Gentoo Linux).

Aí bateu a curiosidade: existem métodos anônimos (e/ou outros recursos de programação funcional) em Java (ou alguma forma de emulá-lo(s))? Se não, há alguma perspectiva de que tais recursos sejam implementados em versões futuras da plataforma? Ou isto não seria interessante?

3 Respostas

R

Nao, nao ha metodos anonimos. Voce pode conseguir isso com alguma linguagem de scripting, como beanshell, jpython, groovy etc…

Rafael

P

Se eu entendi, atualmente, não.

Tem umas alternativas meia-boca:

Groovy, linguagem de script para roda na JVM possui este recurso, os closures.

informações:
http://java.about.com/b/a/142215.htm

mas o ideal é uma linguagem especializada =/

C

O mais perto que chegamos disso usando Java puro eh com inicializadores estaticos e inner classes anonimas:

Foo foo = new Foo() {{
  // codigo executado imediatamente
  }

  public void execute(Bar bar) {
   // codigo executado em foo.execute()
  }
};
Criado 3 de abril de 2005
Ultima resposta 3 de abr. de 2005
Respostas 3
Participantes 4