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
5 comentários:
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é +
O que que vem a ser aquele @shared?
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.
Fiquei com medo que tu falasse que era uma "variavel global"
hehe
Não dá ideia!!
Logo aparece um @Global da vida... ;-)
Postar um comentário