Peczenyj's Blog

Just Another /Perl|Ruby|C++|Java|Python|JavaScript|Flash|Bash/ Hacker

Closures Em Java - Parte 2

Ainda sobre a Closures do java 7, agora será possivel fazer isso:

public class A {
public static void main(String args[]) {
@Shared int acumulador = 0;

{int => int } xxx = { int i => acumulador += i; i};

System.out.println(xxx.invoke(1));
System.out.println(xxx.invoke(2));
System.out.println(xxx.invoke(3));
System.out.println("o valor do acumulador eh " + acumulador );

}
}


Só eu estou achando divertido?

http://gafter.blogspot.com/2008/08/java-closures-prototype-feature.html

Comments

Tiago Peczenyj
Não dá ideia!!

Logo aparece um @Global da vida… ;-)
Marcelo Martins
Fiquei com medo que tu falasse que era uma “variavel global”

hehe
Tiago Peczenyj
Martins, sem o @Shared o codigo compila mas gera um warning. É uma marcação que a variavel é compartilhada com outra closure ou bloco de código.
Marcelo Martins
O que que vem a ser aquele @shared?
Fabio Nascimento
Pois é, a única dúvida é como ele faz o autoboxing escondido(leia-se por debaixo dos panos)?
Mas no geral, tbm estou gostando, vamos ver… quando chegar a hora do SDK implementar isso de verdade mesmo.

Té +