Я хотел бы иметь возможность выполнить следующий код:
abstract class A[T <: AnyRef]{
def whichClass: Class[_] = classOf[T]
}
case class X()
object B extends A[X]
object Main{
def main(args: Array[String]){
B.whichClass //should return classOf[X]
}
}
Очевидно, что в этой форме это не работает, поскольку classOf[T]
может быть назначено только классу, а не типу. А получил ошибку:
error: class type required but T found
def whichClass: Class[_] = classOf[T]
Есть идеи, как решить эту проблему по-другому?