ラムダ式
書き方
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秒