【问题标题】:What does 'private' mean in Groovy?Groovy 中的“私有”是什么意思?
【发布时间】:2011-04-29 16:11:18
【问题描述】:

以下代码设置了一个私有方法。那么私密到底有多私密呢?

public class Person {
 private String name
}

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

【问题讨论】:

  • @James - 试试看,它编译没有错误。
  • Groovy 为私有字段生成 gettes/setter,如果您尝试像 u.name 一样点击私有字段,Groovy 会调用 u.getName(){this.name} 为其生成或声明的方法。所以这种行为对我来说看起来不错。无论如何,Groovy 有很多隐私问题;)

标签: groovy


【解决方案1】:

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

groovy call private method in Java super class有更多详情

【讨论】:

    【解决方案2】:

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

    与私有方法一样,您可以使用 MetaClass 的概念来解决任何问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多