!!!ラムダ式 !!書き方 {{code Java, Function func = s -> "[" + s + "] " + this.getClass(); }} のようにかける。 {{code Java, Function func = new Function(){ @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が実行したオブジェクトになるのは、この辺が理由だと思うが、詳しくは知らない。機会があれば調べる。 {{category2 プログラミング言語,Java}}