访问案例类的方法

时间:2013-05-06 20:14:34

标签: scala case-class

为什么我在没有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

2 个答案:

答案 0 :(得分:3)

您需要使用A创建一个类A()的实例(在apply上调用A)。否则你指的是伴侣对象本身。

答案 1 :(得分:0)

这个怎么样?您没有定义f,可能意味着aInstance

class B {
  def someMethod = {
    val aInstance = A
    aInstance.g = 4
  }
}