2

在我的示例中,我希望能够返回 classOf[frame] 而不是我得到一个错误 not found: type frame.

trait User extends VertexFrame {
  ...
}

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

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

1 回答 1

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
于 2013-05-27T15:11:56.817 回答