Ich weiß, dass Datenklassen wie einfache Modelle in Kotlin mit getters und Setter standardmäßig sind und sind so einfach:
%Vor%Ist es möglich, einen zweiten Konstruktor für diese Datenklasse zu deklarieren?
Ja, aber jede Variable sollte initialisiert werden, sodass Sie in Ihrem Datenklassenkonstruktor Standardargumente wie folgt setzen können:
%Vor%Nun können Sie die Instanz dieser Datenklasse auf zwei Arten erstellen:
Person(30)
Person(20, "Bob")
Eine Kotlin-Datenklasse muss einen primären Konstruktor haben, der mindestens ein Element definiert. Darüber hinaus können Sie sekundäre Konstruktoren hinzufügen, wie in Klassen und Vererbung - Sekundäre Konstruktoren
Für Ihre Klasse und Beispiel sekundären Konstruktor:
%Vor%Beachten Sie, dass der sekundäre Konstruktor in seiner Definition an den primären Konstruktor delegieren muss.
Obwohl viele Dinge, die für Sekundärkonstruktoren typisch sind, durch Vorgabewerte für die Parameter gelöst werden können. Im obigen Fall könnten Sie vereinfachen:
%Vor%Wenn Sie diese aus Java aufrufen, sollten Sie das Java-Interop - Java aufrufen, das Kotlin aufruft Dokumentation zum Generieren von Überladungen, und vielleicht auch manchmal das NoArg Compiler-Plugin für andere Sonderfälle.
Ja, wir können wie im folgenden Code verwenden und im primären Konstruktor für die Datenklasse mindestens einen Parameter haben.
%Vor%Die Datenklasse gewährleistet Konsistenz und sinnvolles Verhalten. Außerdem müssen wir val für die Unveränderbarkeit angeben.
%Vor%}
sekundärer Konstruktor muss an den primären Konstruktor in seiner Definition delegieren, um die Unveränderlichkeit zu erhalten, funktioniert "null".
Tags und Links constructor kotlin