【发布时间】:2018-04-01 13:04:11
【问题描述】:
在 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 会导致无法从类外部访问它,甚至不能从同一个文件访问。
【问题讨论】:
标签: java constructor kotlin visibility