Groovy 中的属性看起来像是 Java 中没有访问修饰符的类字段。这是真的吗?还是它们有一种特殊的含义?似乎没有办法将属性设置为私有?
class A {
String property
/*
private String property
public void setProperty(String property) { ... }
public String getProperty() { ... }
*/
}
class A {
public String field
/*
public String field
*/
}
从Groovy客户端的角度来看,在运行时访问Groovy属性和公共字段之间没有区别
def a = new A()
println a.field
println a.property
a.field
直接访问实例变量,而 a.property
实际上调用 a.getProperty()
(或在分配值时调用 a.setProperty(...)
),但由于属性符合 JavaBeans 规范,因此该类可以无缝地在基于 Java 的环境中使用。private
限制了方法或实例/类变量的使用仅限于托管类类型。但也许您是指制作私有字段实例变量。