由于內部類存在語義缺陷,所以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
山風小子 閱讀(3257)
評論(8) 編輯 收藏 所屬分類:
Groovy & Grails