如何初始化复合类型?

德克萨斯州

我有一个具有自定义特征的类型定义:

trait Foo {
  def bar: String
}

val BooleanType: Class[Boolean] with Foo = classOf[Boolean] with Foo {
  def bar = ""
}

//Error: error: ';' expected but 'with' found.

但是,这不起作用。我也尝试过:

val BooleanType: Class[Boolean] with Foo = classOf[Boolean] {...}
//Error:  Class[Boolean](classOf[scala.Boolean]) does not take parameters

val BooleanType: Class[Boolean] with Foo = classOf[Boolean] with new Foo {...}
//Error:  error: ';' expected but 'with' found.

没有办法。如何做到这一点?


编辑:我也尝试使用scala类型:

val Boolean: Type with Foo = typeOf[Boolean] with Foo {...}
//error: ';' expected but 'with' found.
乔·克

您不能创建的子类,Class因为它是最终类。如果可以,并且具有构造函数,则语法为:

val BooleanType: Class[Boolean] with Foo = new Class[Boolean](< args >) with Foo {
  def bar = ""
}

据我所知,不可能对特定实例进行子类化(就像您尝试使用classOf[Boolean])。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从类型初始化 BehaviorSubject?

如何初始化类型界面?

如何初始化这些数组类型?

如何正确初始化var类型

在不初始化所有字段的情况下声明复合类型的实例

Setenv:类型表达式列表在初始化程序中被视为复合表达式

如何在Typescript中初始化类型化数组

如何修复“对类型的引用需要初始化程序”?

如何解决:从不兼容的指针类型初始化

numba如何推断字面初始化的本地类型?

如何初始化内联结构类型的指针成员?

由于情况不同,如何初始化动态列表类型?

如何聚合初始化从虚拟类型继承的结构?

如何使用默认值初始化值类型?

如何在if-else中初始化错误类型

最佳做法,如何初始化自定义类型?

如何使用LINQ to Entities初始化匿名类型?

如何在 Dart/Flutter 中初始化 ValueChanged 类型?

如何访问和初始化simd类型的组件?

如何使数组的派生类型接受聚合初始化?

错误未解决的类型,如何初始化dbhelper?

如何初始化未知的字符串类型?

如何初始化Map类型变量以解决NullPointerException错误?

如何使用单个路径初始化 StorageFolder 类型的变量?

如何初始化 fstream& 类型的类成员

如何在初始化之前设置对象的类型?

用复合文字初始化指向结构的指针

C:使用指针静态初始化复合结构

警告:从不兼容的指针类型初始化-如何初始化包含函数指针的结构体数组