什么是';私人';你是说Groovy?

什么是';私人';你是说Groovy?,groovy,Groovy,下面的代码设置了一个私有方法。那么隐私到底有多隐私呢 public class Person { private String name } def u = new Person(name:"Ron") println u.name 按照设计,Groovy应该尊重私有修饰符,但是当前的实现没有考虑它 在中有进一步的细节,我认为我们可以访问它,因为groovy为所有变量添加了getter和setter。这些方法是公共的,因此可以在您期望的范围之外访问私有变量 与私有方法一样,使用元类的概念可

下面的代码设置了一个私有方法。那么隐私到底有多隐私呢

public class Person {
 private String name
}

def u = new Person(name:"Ron")
println u.name

按照设计,Groovy应该尊重私有修饰符,但是当前的实现没有考虑它


中有进一步的细节,我认为我们可以访问它,因为groovy为所有变量添加了getter和setter。这些方法是公共的,因此可以在您期望的范围之外访问私有变量


与私有方法一样,使用元类的概念可以在任何地方使用。

请参见@James-try it,它编译时不会出错。Groovy为私有字段生成gettes/setter,如果您尝试像u.name那样命中私有字段,Groovy将调用u.getName(){this.name}为其生成或声明的方法。所以这种行为对我来说很好。无论如何,Groovy在隐私方面有很多问题;)