1

new为什么我在没有关键字的情况下启动案例类实例时无法访问普通类方法中的案例类方法?即在以下代码中,我得到一个编译时错误:

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

4

2 回答 2

3

您需要A使用A()(调用applyon A)创建一个类的实例。否则,您指的是伴随对象本身。

于 2013-05-06T20:25:48.443 回答
0

这个怎么样?你没有定义f,意思是大概aInstance

class B {
  def someMethod = {
    val aInstance = A
    aInstance.g = 4
  }
}
于 2013-05-06T20:17:25.243 回答