商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

Groovy高效编程——用Closure替代匿名类

作者:来自ITPUB论坛  2008-01-22

  【IT168 技术文档】由于内部类存在语义缺陷,所以JCP决定将在Java7或Java8中添加对Closure的支持。而Groovy一开始就洞察到了这点,所以在Groovy中没有内部类,只有Closure,不过为了更好地兼容Java,将在未来的某个版本中支持内部类。现在让我们看看Groovy是如何满足Java开发人员对匿名类的需求的。

  1,实现接口

  interface Talkable {   void sayHello(String name)   }   def man = [   // 实现接口   sayHello:{String name -> println " Hello, $name " }   ] as Talkable   man.sayHello( " Daniel " )

  运行结果:

  Hello, Daniel

  2,继承抽象类

  abstract class Human {   abstract void sayHello(String name)   }   def man = [   // 实现抽象方法   sayHello:{String name -> println "Hello, $name"}   ] as Human   man.sayHello("Daniel")

  运行结果:

  Hello, Daniel

  其实说‘替代匿名类’有点不太贴切 :)

1
©版权所有。未经许可,不得转载。
[责任编辑:cynthia]