Groovy Beans
http://blog.donews.com/WFoxd/archive/category/groovy
这里是一个 Groovy Bean
例子.
class Car {
String make
String model
}
这个类声明了两个属性,而不包含任
何方法.然而,很多事情是在后台完成的. 类,属性和方法默认是公共的(public).公共的和保护的(protected)属性会成为私有域但是它们的公共的/保护的get和 set 会被自动生成.(Public and protected properties result in private fields for which public/protected get and set methods are automatically generated)这些都可以被
重载来提供定制的行为.对于明确被声明为私有的(private)属性来说, get和set 方法没有被生成.
上面的Groovy代码等同于以下的Java代码.
public class Car {
private String make;
private String model;
public String getMake() {
return make;
}
public String getModel() {
return model;
}
public void setMake(String make) {
this.make = make;
}
public void setModel(String model) {
this.model = model;
}
}
由Groovy Beans生成的类继承了java.lang.Object类并实现了groovy.lang.GroovyObject类.它添加的方法有getProperty, setProperty, getMetaClass, setMetaClass以及invokeMethod. groovy.lang.MetaClass类允许在运行时添加方法.
Groovy Beans可以使用有名参数创建.例如,下面的代码调用了Car类的无参数
构造函数然后调用了每个独立属性的set方法.
myCar = new Car(make:’ Toyota’, model:’Camry’)