Groovy处理Java Bean
用Closure替代匿名类
interface Talkable {
void sayHello(String name)
}
def man = [
// 实现接口
sayHello:{String name -> println " Hello, $name " }
] as Talkable
man.sayHello( " Daniel " )
运行结果:
Hello, Daniel
Getter and Setter
- 在Groovy中,类无访问修饰符则被认为是public;而属性无访问修饰符则认为是private。方法无访问修饰符则认为是public。
Groovy的named parameter
Groovy的named parameter 一般有两个用途:
- 用在groovybean的构造函数中,提供一种便利的方式来创建新对象。例如:def p =new Person([name:'yezi',age:25])
- 用在方法中(static or not-static),如果传入的参数是named parameter的话,那么该方法会自动收集这些named parameter,然后当成该方法的第一个参数,关键是不理会named paramter的位置。
隐式构造函数
class Addr{
String homeAddr
String workAddr
Addr(def home,def office)
{
this.homeAddr=home
this.workAddr=office
}
}
那么创建Addr对象将有如下几种方式:
- 显示调用构造函数Addr(def home,def office)
- 显示使用as来调用对应的构造函数 :def addr=["home","office"] as Addr
- 隐式的让groovy通过类型推断来调用对应的构造函数 Addr </strong>addr=["home","office"]
对于第2种第3种方式,groovy bean需要显示提供对应的构造函数定义。