@PackageScope
Groovy对属性的约定是这样的:没有可视化修饰符(visibility modifier)修饰的任何属性都会暴露给外界,Groovy会自动生成getter和setter。例如,下面的Person类会为private name属性生成getter getName()及setter setName()这两个方法:
class Person {
String name
}
这等价于下面的Java类:
public class Person {
private String name;
public String getName() { return name; }
public void setName(name) { this.name = name; }
}
但这种方式有个弊端——无法为属性定义包范围的可视性,要想实现这一点,你可以用@PackageScope来注解属性。