FunctionalJavaには、F1.javaやF2.javaなど、メソッド1つだけのabstract classを変更すればFunctionalInterfaceになるものが大量にあるので、ちょっと試してみました。 以下にわかりやすい書き換え例を上げておきます。 思ったよりも結構ラムダの型推論が効いて、(varが存在しない以外は) C# に匹敵するくらいまで、型を書かなくてよくなって素晴らしいですね。 一番顕著な例がこんな感じ https://github.com/xuwei-k/functionaljava/commit/5372e395f923e16271cc131bdf8f13b837d741f9#L11R566 変換前↓(良くも悪くも頭おかしい) public static <A, B, C, D, E, F$, G, H, I> F<A, F<B, F<C, F<D, F<E