🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 作为闭包的内部类 我们可以使用匿名内部类重写之前的例子: ~~~java // functional/AnonymousClosure.java import java.util.function.*; public class AnonymousClosure { IntSupplier makeFun(int x) { int i = 0; // 同样规则的应用: // i++; // 非等同 final 效果 // x++; // 同上 return new IntSupplier() { public int getAsInt() { return x + i; } }; } } ~~~ 实际上只要有内部类,就会有闭包(Java 8 只是简化了闭包操作)。在 Java 8 之前,变量`x`和`i`必须被明确声明为`final`。在 Java 8 中,内部类的规则放宽,包括**等同 final 效果**。