実際、Javaには1.1の時代から(インナークラスという形で)クロージャがあります。次のコードを見て下さい。 public interface IFilter { public boolean filter(int x); } public class FilterFactory { public static IFilter greaterThan(final int i) { return new IFilter() { public boolean filter(int x) { // iは語彙的スコープの外部から与えられる return x > i; } }; } } 上記のコードサンプルでは、FilterFactoryにgreaterThanというファクトリメソッドがあり、これは呼び出しに際して引数に関するクロージャを返します。同じコードを異なる引数で呼び出すと、異なるクロージャ
![InfoQ: Javaにおけるラムダ:詳細な分析](https://cdn-ak-scissors.b.st-hatena.com/image/square/cd67d24ad1663b8246d89fc1cac7a493cab4f976/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s2_20220201-0240%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)