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.

Antworten:


141

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.