ラムダ式
書き方
1 |
Function<String,String> func = s -> "[" + s + "] " + this.getClass(); |
のようにかける。
1 |
Function<String,String> func = new Function<String,String>(){
@Override
public String apply(String s){
return "[" + s + "] " + this.getClass();
}
}; |
に近いイメージだが、ラムダ式の場合は this はラムダ式を実行したオブジェクトになる。
内部的なこと
ラムダ式を
javap -c -p
で見てみると
private java.lang.String lambda$0(java.lang.String);
が定義されており、
invokedynamic
で実行されている。ラムダ式内のthisが実行したオブジェクトになるのは、この辺が理由だと思うが、詳しくは知らない。機会があれば調べる。
[カテゴリ: プログラミング言語 > Java]
[通知用URL]
Tweet
最終更新時間:2013年12月12日 23時09分42秒