我读到Java 8
支持Closures
,但我只想知道function
内的任何class
都可以访问全局变量,那么Java以前怎么样?不支持Closures
??见下面的例子。
public class HelloWorld{
int number = 5;
public void fun() {
System.out.println("number: " + number); // Here fun() can access number.
}
public static void main(String []args){
System.out.println("Hello World");
new HelloWorld().fun();
}
}
我认为Closures
有一些我没有得到的东西?
答案 0 :(得分:0)
唯一可以被认为是JDK-8之前的闭包的是内部类。
那么什么是封闭?
闭包很像lambda,除了它们引用函数范围之外的变量。换句话说,闭包是某种类型的行为,您可以传递它并引用其范围之外的变量。
Java-8所做的是为闭包提供比内部类更有吸引力的语法。