Gibt es Konstruktorreferenzen in Kotlin?

103

In Java haben wir die Class::newSyntax für Konstruktorreferenzen. Ich weiß, es gibt aufrufbare Referenzen für Methoden, aber wie steht es mit Konstruktoren? Ein typischer Anwendungsfall für mich wären Fabriken.

Kirill Rakhman
quelle

Antworten:

141

Sie können eine Funktionsinstanz für einen Konstruktor erhalten, indem Sie einfach verwenden ::ClassName, als wäre es eine Factory-Funktion.

Ilya Ryzhenkov
quelle
25
Herzlichen Dank. Idk, wenn dies jemandem helfen wird, aber um dies mit Sealed-Klassen zu tun, tun Sie:SealedClass::SubClass
aProperFox
Was ist mit Verweisen auf sekundäre Konstruktoren?
Travis Well
@TravisWell was wäre ein Äquivalent in Java? AFAIK Sie können in Java nicht auf einen bestimmten Konstruktor verweisen. Der Compiler erkennt automatisch anhand abgeleiteter (oder expliziter) Argumenttypen, auf welchen Konstruktor (über Class :: new) verwiesen werden soll
Andrey