Javaにクロージャーが載るとしたら

masataka_kさんのところに書いてみたのですが、Javaクロージャーを用意するとしたら

interface Function{
  Object exec(Object[] args);
}

を用意して

Function f = function(int a){System.out.println(a)};

とかやると

Function f = new Function(){
  public Object exec(Object[] args){
    int a = (Integer)args[0];

    System.out.println(a);

    return null;
  }
};

という感じで展開される感じかなぁと思います。
そうすると

String[] strs = {"いち", "に", "さん"};
strs.each(function(String s){print(s)});

という書き方ができるように。
で、こんな感じ。

String jstrs = {"いち", "に", "さん"};
String estrs = {"one", "two", "three"};
Function f = function(String s){print(s)};
jstrs.each(f);
estrs.each(f);

型保証はGenerics構文で

Function f = function(String s){ print(s)};

戻り値も指定するなら

Function f = function(String s){ return s + "\n"};