为什么我在没有new
关键字的情况下启动case类实例时,无法访问普通类方法中的case类方法?
即在下面的代码中我得到一个编译时错误:
case class A() {
private var _g = 12
//getter-setter
def g = _g
def g_=(value : Int) = this._g = value
}
class B {
def someMethod = {
val aInstance = A
aInstance.g = 4; // compile time error. Why?
}
}
但是如果我在new
声明中添加aInstance
关键字,那么一切正常。
错误信息是:
无法解析符号g
答案 0 :(得分:3)
您需要使用A
创建一个类A()
的实例(在apply
上调用A
)。否则你指的是伴侣对象本身。
答案 1 :(得分:0)
这个怎么样?您没有定义f
,可能意味着aInstance
。
class B {
def someMethod = {
val aInstance = A
aInstance.g = 4
}
}