Scala 中 Classtag 的错误使用?

Wrong usage of Classtag in Scala?

import scala.reflect.ClassTag


class IntStorage {
  var variable: Int = 5
}


class testing[T : ClassTag] {
  var example = Array.ofDim[T](10, 10)
  def testFunc(): Int = example(0)(0).variable
}

错误:值变量不是 T

的成员

我不明白为什么会出现此错误,即使我使用了分类标签。

ClassTag没问题。但是你声明 testingany class 工作,而不仅仅是 IntStorage。如果我调用 new testing[String]() 怎么办? String 是一个完全有效的 class,带有 class 标签,但它没有 variable 字段。我可以用任何 class.

来调用它

你的意思可能是

class testing[T <: IntStorage : ClassTag] { ... }