8岁以上的Java版本如何不支持闭包?

时间:2018-05-19 11:37:48

标签: java java-8 closures

我读到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有一些我没有得到的东西?

1 个答案:

答案 0 :(得分:0)

唯一可以被认为是JDK-8之前的闭包的是内部类

那么什么是封闭?

闭包很像lambda,除了它们引用函数范围之外的变量。换句话说,闭包是某种类型的行为,您可以传递它并引用其范围之外的变量。

Java-8所做的是为闭包提供比内部类更有吸引力的语法。