使用语言默认值实例化Scala类

时间:2018-10-04 13:24:41

标签: scala

是否可以使用“语言默认值”实例化Scala类,例如所有数字均为零,其他数字为null?也许某些使用反射的库?

1 个答案:

答案 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()