是否可以在 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/