Javaのバイトコードで遊ぶ (Hello World) 以下のメソッドのカリー化を例にバイトコードでラムダ式を作ってみます。 int add(int a, int b, int c); ラムダ式の生成にはinvokedynamicと、そのブートストラップにLambdaMetafactory.metafactoryを用います。 metafactoryがFunctionalインターフェースの実装クラスを動的に生成すると理解していますが正しく説明できる自信はありません。 むしろこの記事はサンプルコードの備忘録です。。 過去に説明を試みたことはありますけど… ラムダとinvokedynamic さらっとやっていることを。まず上記のメソッドを以下の3つに分解することを考えます。 IntFunction<IntFunction<IntUnaryOperator>> add$0(){ return a