为什么classOf [...]在这种情况下说“找不到:输入foo”?

时间:2013-05-27 15:08:22

标签: scala abstract-class

在我的例子中,我希望能够返回[Frame]类,而不是找不到错误:输入框架。

trait User extends VertexFrame {
  ...
}

object User extends Base[User] {
  ...
}

abstract class Base[T <: VertexFrame] { frame: T =>
  def test = {
    classOf[frame]
  }
}

1 个答案:

答案 0 :(得分:3)

classOf仅用于类文字,如String,Int等:

scala> classOf[String]
res0: java.lang.Class[String] = class java.lang.String

要获取特定的类实例,必须调用.getClass方法:

scala> val frame = "foo"
frame: String = foo

scala> frame.getClass
res1: Class[_ <: String] = class java.lang.String