groovy语言错误
在Groovy控制台中,执行以下代码时不会出错:groovy语言错误,groovy,Groovy,在Groovy控制台中,执行以下代码时不会出错: class F { private def getFoo() {"foo"} private def barValue = "bar" } def f = new F() assert f.barValue == "bar" assert f.properties.containsKey("foo") 这意味着: 可以访问类之外的类的私有成员 类的属性派生自私有(和公共)getter/setter方法 在我看来,这两个都是非常严重
class F {
private def getFoo() {"foo"}
private def barValue = "bar"
}
def f = new F()
assert f.barValue == "bar"
assert f.properties.containsKey("foo")
这意味着:
- 可以访问类之外的类的私有成员
- 类的属性派生自私有(和公共)getter/setter方法
可悲的是,这是故意的。这改变了1.5。不幸的是,为了支持它们的闭包机制和元对象协议,它们必须访问私有成员
这篇文章解释得更透彻一点:我意识到这是一个老生常谈的答案,但我似乎无法让链接发挥作用。它被移动了吗?