由于内部类存在语义缺陷,所以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 
山风小子 阅读(3275) 
评论(8)  编辑  收藏  所属分类: 
Groovy & Grails