Es folgt eine einfache scala
Klassendefinition, innerhalb der Personenklasse sind 2 Konstruktoren definiert.Konstruktor verwenden Nullwert als Parameter
Person.scala:
// class that has field and method,
class Person(var name:String, var age:Short) {
def this() {
this("", 0);
}
def this(name:String) {
this(name, 0);
}
def hi() = printf("hi, I am %s!\n", name)
}
// var nobody = new Person();
var eric = new Person("Eric", 12);
eric.hi;
Die Frage ist:
- Wenn
age
Feld nicht in Konstruktor der Argumentliste vorgesehen ist, ich es auf null initialisiert werden soll, nicht 0 Was ist der richtige Weg dafür? Gleiche Anforderung für das Feldname
.
Dont null zurückgibt verwenden dann, Verwendung Option: '' 'Fall class Person (Name: Option [ String] = None, Alter: Option [Int] = None) '' 'und dann brauchst du nicht all diese Boiler-Plate-Konstruktoren – maress
Erstens, wie @mares gesagt hat, ist es keine gute Möglichkeit, null zu verwenden. Zweitens können Sie 'Null' nicht dem Wert' Short' ('AnyVal') zuweisen. –