如果我理解正确的话,traits 是最接近 Java 接口的东西,类构造函数会自动设置变量。
但是,如果我有一个扩展特征的类,并且有一个从特征设置变量的构造函数,那么像:
trait Foo {
var foo: String
}
class Bar (foo: String) extends Foo { /* ... */ }
我想要的地方foo
当我制作时设置的特征字符串Bar
object.
编译器似乎给了我关于此的错误。实现这一目标的正确方法是什么?
trait Foo { var foo: String = _ }
class Bar(foo0: String) extends Foo { foo = foo0 }
该特征声明了一个未初始化的变量;然后该类将其设置为等于输入参数。
或者,
trait Foo {
def foo: String
def foo_=(s: String): Unit
}
class Bar(var foo: String) extends Foo {}
声明与 foo 相对应的 getter/setter 对,它们由类设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)