w Javie to możliwe, aby ukryć klasy główny konstruktor, czyniąc go private
i dostępu do niego za pośrednictwem public
static
metody wewnątrz tej klasy:prywatny konstruktor w Kotlin
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;
}
// ...
}
W jaki sposób można to samo osiągnąć z Kotlin bez oddzielania klasy w interfejsie public
i implementacji private
? Tworzenie konstruktora private
prowadzi do tego, że nie jest dostępny z zewnątrz klasy, nawet z tego samego pliku.