我有一个名为A
的类,它扩展了特性X
。 X
有一个抽象变量x
已在A
类中实现。类A
使用特征X
中名为foo
的功能之一。我正在尝试制作类A
的伴侣对象,并在其中放入一些名为Ofoo
的“静态”方法。我的问题是Ofoo
使用foo
。于是,我试着做这样的事情:通过对象扩展特质
trait X{
val x:String
def foo = {
//Full implementation here
}
}
case class A extends X{
val x = "barbaz"
// Class uses foo
}
object A extends X{
def Ofoo = {
//This also needs to use foo
}
}
我得到一个错误说A
不能被实例变量x
对象不特质X
定义。 我应该如何构造A
,以便它可以使用特征中定义的功能foo
?
你应该解释你真正想要完成的事情(你真正的问题,而不是抽象的问题)。可能有一个简单的解决方案,但很难说如果我们不知道你在做什么。 – toto2