是否可以在Groovy bean中创建一个包范围的构造函数?
如果我从构造函数中删除public
,那么默认情况下,它将成为公共构造函数。
我阅读了@PackageScope
注释,但它不允许我在构造函数上应用它。
我希望Groovy bean中的包范围构造函数的原因是强制Java代码使用相应的bean构建器来实例化Groovy bean类,而不是依赖Groovy bean的构造函数。构建器是与Groovy bean位于同一个包中的独立类。
谢谢。
答案 0 :(得分:3)
完成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
}