由于内部类存在语义缺陷所以JCP决定将在Java或Java中添加对Closure的支持而Groovy一开始就洞察到了这点所以在Groovy中没有内部类只有Closure不过为了更好地兼容Java将在未来的某个版本中支持内部类现在让我们看看Groovy是如何满足Java开发人员对匿名类的需求的 实现接口 interface Talkable {void sayHello(String name)}def man = [// 实现接口sayHello:{String name > println Hello $name }] as TalkablemansayHello( Daniel ) 运行结果 Hello Daniel 继承抽象类 abstract class Human {abstract void sayHello(String name)}def man = [// 实现抽象方法sayHello:{String name > println Hello $name}] as HumanmansayHello(Daniel) 运行结果 Hello Daniel 其实说替代匿名类有点不太贴切 :) |