我有一些实现特征的对象。我试图让val
对所有这些对象都是静态的并且是通用的。我有read,这样做的方法是使用伴随对象作为特征。我使用了以下内容:
trait Test
object Test extends Test{
val a = 1
}
object Test2 extends Test{
def test = {
val b = a
}
}
但是,在行val b = a
中,我收到“未找到:值a”错误。如果能解决这个问题,我将不胜感激。
答案 0 :(得分:3)
默认情况下,随播对象的成员对任何人都不可见,甚至是他们的伴侣类。所以你需要一个明确的导入:
trait Test
object Test extends Test{
val a = 1
}
object Test2 extends Test{
import Test._
def test = {
val b = a
}
}
我不知道在没有每个子类的导入的情况下是否有一种很好的方法...