【问题标题】:Groovy equivalent to java's declaration without access modifierGroovy 等价于没有访问修饰符的 java 声明
【发布时间】:2014-07-25 11:55:08
【问题描述】:

所以,我可以在 Groovy 中声明一个类:

//groovy-code
class Person {

}

这相当于用java写类似的东西:

//java-code
public class Person {

}

只是出于好奇.. 什么 groovy 等同于 java 中的代码:

//java-code
class Person {

}

我的意思是有没有一种方法可以通过在没有访问修饰符的情况下声明某些内容来实现我在 Java 中可以实现的相同功能?

【问题讨论】:

  • 第三个是java代码,第一个是groovy代码。这是唯一的区别

标签: java groovy access-modifiers


【解决方案1】:

由于 Java 中类的默认访问修饰符是“package-private”,我认为在 Groovy 中最接近相同行为的方法是使类“受包保护”,这是通过@PackageScope注解:

@PackageScope class Person {

}

顺便说一句,Groovy 中有一个open and unresolved bug(功能?)可以防止任何形式的“私人”可见性发挥作用。计划在 Groovy v3.0 上实施。

【讨论】:

  • 这样就很接近了。但这是否意味着如果我想在 groovy 中使用没有访问修饰符的 Java 类,我不能?或者 groovy 将如何处理?
  • 可以,但是编译的时候会被当作public处理。
  • “但这是否意味着如果我想在 groovy 中使用没有访问修饰符的 Java 类,我不能?”。不,您在 Groovy 中使用没有访问修饰符的 Java 类的方式与在 Java 中使用它们的方式完全相同。语法没有什么不同。 PackageScope 注解只与定义类有关,与其他类无关。
  • 对于私有字段/方法,另见:stackoverflow.com/questions/7852370/…似乎链接的jira票现在是issues.apache.org/jira/browse/GROOVY-7246
猜你喜欢
  • 2011-10-09
  • 2014-05-22
  • 2013-05-25
  • 2014-06-26
  • 2015-12-02
  • 2015-11-26
  • 1970-01-01
  • 2014-08-24
  • 2011-01-15
相关资源
最近更新 更多