First they ignore you
then they ridicule you
then they fight you
then you win
    -- Mahatma Gandhi
Chinese => English     英文 => 中文             
随笔-219  评论-1047  文章-0  trackbacks-0
由于内部类存在语义缺陷,所以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


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

附:朝花夕拾——Groovy & Grails
posted on 2007-11-04 11:03 山风小子 阅读(2820) 评论(8)  编辑  收藏 所属分类: Groovy & Grails