在Java中,可以隐藏类的主构造函数,方法是将其设为private
,然后通过该类中的public
static
方法访问它:
public final class Foo {
/* Public static method */
public static final Foo constructorA() {
// do stuff
return new Foo(someData);
}
private final Data someData;
/* Main constructor */
private Foo(final Data someData) {
Objects.requireNonNull(someData);
this.someData = someData;
}
// ...
}
在不将类拆分为public
接口和private
实现的情况下,如何使用Kotlin实现同样的功能?构造构造函数private
会导致无法从类外访问它,甚至不能从同一个文件访问它.