Constructeur privé dans Kotlin
En Java, il est possible de masquer une classe principale de constructeur en la rendant private
et puis y accéder via un public
static
méthode à l'intérieur de cette classe:
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;
}
//...
}
Comment peuvent même être atteint avec Kotlin, sans séparer la classe en un public
interface et un private
mise en œuvre? Faire un constructeur private
conduit à ne pas être accessible depuis l'extérieur de la classe, pas même à partir du même fichier.
OriginalL'auteur Marvin Meller | 2017-10-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez même faire quelque chose de plus semblable à "l'émulation" l'utilisation de constructeur public tout en ayant constructeur privé.
OriginalL'auteur rafal
C'est possible à l'aide d'un compagnon de l'objet:
Méthodes à l'intérieur de la compagne de l'objet peut être atteint, comme s'ils étaient des membres de l'entourage de la classe (par exemple,
Foo.constructorA()
)OriginalL'auteur Marvin Meller