Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Scala中,如何初始化traits中的抽象VAL?_Scala - Fatal编程技术网

在Scala中,如何初始化traits中的抽象VAL?

在Scala中,如何初始化traits中的抽象VAL?,scala,Scala,假设我有以下两个抽象VAL的特征 trait Base { val startDate: java.util.Date val endDate: java.util.Date } 我现在有一个抽象类扩展了trait abstract class MyAbstract extends Base ... 现在,我想用一些其他特性来实例化这个抽象类 def main(args: Array[String]) { new MyAbstract with MixIn1 with Mi

假设我有以下两个抽象VAL的特征

trait Base {
  val startDate: java.util.Date
  val endDate: java.util.Date
}
我现在有一个抽象类扩展了trait

abstract class MyAbstract extends Base ...
现在,我想用一些其他特性来实例化这个抽象类

  def main(args: Array[String]) {
   new MyAbstract with MixIn1 with MixIn2
  }

如何为startDate和endDate传递具体值?

因为
MyAbstract
是一个抽象类,所以不能直接实例化它。您需要显式地将其子类化,或者创建一个匿名子类的实例,例如

def main(args: Array[String]) {
  val myInstance = new MyAbstract with MixIn1 with MixIn2 {
    val startDate = ...
    val endDate = ...
  }
}