是否可以使用“语言默认值”实例化Scala类,例如所有数字均为零,其他数字为null?也许某些使用反射的库?
答案 0 :(得分:0)
第一个选项是在类定义中设置默认值:
class MyClass(val a: Int = 0, b: String = "defaultValue")
此外,您可以在该类中使用不同的构造方法('def this(...)')并在其中设置默认值。
class MyClass(val a: Int, b: String) {
def this(aValue: Int) = {
this(aValue, "defaultValue")
}
}
new MyClass(0, "String")
new MyClass(0)
另一种方法是有一个伴随对象,您可以在其中创建一个实例,该实例通过apply方法传递所需的值。
object MyClass {
def apply() : MyClass = {
new MyClass(15, "defaultValueFromCO")
}
}
MyClass()