Java闭包和lambda表达式

闭包的解释:
闭包就是把函数以及变量包起来,使得变量的生存周期延长。闭包跟面向对象是一棵树上的两条枝,实现的功能是等价的

我所理解的是,在一个Java的方法内定义一个index变量,当前方法中存在一个内部的匿名对象内部的匿名对象引用index变量并且作为Java的方法返回出去。
代码解释如下:

public static InnerObject<Integer> closure(){
    final int index = 100;
    return new Supplier<Integer>() {
        @Override
        public Integer get() {
            return index;
        }
    };
}

public interface InnerObject<T> {
    T get();
}

你可能感兴趣的:(编程语法)