Groovy:包范围的构造函数

时间:2014-08-04 13:24:54

标签: groovy

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

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

我阅读了@PackageScope注释,但它不允许我在构造函数上应用它。

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

谢谢。

1 个答案:

答案 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
}