Groovy:包范围的构造函数

标签 groovy

是否可以在 Groovy beans 中创建包范围的构造函数?

如果我从构造函数中删除 public,那么默认情况下,它会成为公共(public)构造函数。

我阅读了有关 @PackageScope 注释的内容,但它不允许我将其应用到构造函数上。

我想要在 Groovy bean 中使用包范围的构造函数的原因是强制 Java 代码使用相应的 bean 构建器来实例化 Groovy bean 类,而不是依赖于 Groovy bean 的构造函数。构建器是单独的类,与 Groovy bean 位于同一包中。

谢谢。

最佳答案

完成于2.4.0-beta-1 。看起来很简单wasn't requested before .

protected听起来怎么样?

我编写了一个包含三个文件的示例:a.Foo.java、b.Hidden.groovy、b.NoProblem.java:

a.Foo.java:

package a;

import b.Hidden;

public class Foo {
    Hidden hid = new Hidden(); // Not compiling with: 
                               // "The constructor Hidden() is not visible"
}

b.Hidden.groovy:

package b

class Hidden {
    protected Hidden() {
    }
}

b.NoProblem.java:

package b;

public class NoProblem {
    Hidden hid = new Hidden(); // Compiles fine
}

关于Groovy:包范围的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25119748/

相关文章:

android - Gradle Crittercism内置映射上传不起作用

maven - 仅当发布时才进行Gradle发布

list - Groovy 在迭代 map 时修改 map 元素

spring-boot - 斯波克测试 : Too few invocation

java - 获取所有登录我的网络应用程序restfb的人

grails - 使用 Grails Controller 的自定义脚手架?

binding - 通过委托(delegate)绑定(bind)时,Groovy 闭包短格式方法调用不起作用?

groovy - 如何在 Groovy 中定义 @CompileStatic 兼容闭包?

grails - Groovy totalCount与大小

grails - 如何在 Grails Controller 之间传递错误消息?