首页 > 开发 > JAVA > 正文

c语言和java如何实现闭包?

2017-09-07 09:23:53  来源:网友分享

js go python 实现闭包貌似很简单

解决方案

c语言不熟悉,java中的闭包是通过“接口+内部类”实现的
以下是网上的一个例子

public class DemoClass1 {    private int length =0;    //private|public    private class InnerClass implements ILog    {        @Override        public void Write(String message) {            //DemoClass1.this.length = message.length();            length = message.length();            System.out.println("DemoClass1.InnerClass:" + length);        }    }    public ILog logger() {        return new InnerClass();    }    public static void main(String[] args){        DemoClass1 demoClass1 = new DemoClass1();        demoClass1.logger().Write("abc");        //.new        DemoClass1 dc1 = new DemoClass1();        InnerClass ic = dc1.new InnerClass();        ic.Write("abcde");    }}

可以参考下这个博客http://www.cnblogs.com/chenjunbiao/archive/2011/01/26/1944417.html