我想得到一些字段的名称。特别是,我有类似
的东西trait Special[T] {
// do something here
}
class MyClass {
object x extends Special[Int]
object y extends Special[String]
// other fields may be intermixed
// or I could extend a trait that
// has its own fields
}
如何获取在MyClass中扩展Special的字段列表?我试过了
classOf[MyClass].getDeclaredFields.toList.filter(_.getType.isInstanceOf[Special])
和几种类似的事情,但参数一直让我搞砸。
我认为我遇到了Class<?>
与Type
问题,但我尝试了一些getInterfaces()
和getGenericType()
的实验并且没有进一步研究。
请帮忙! :-) 托德
答案 0 :(得分:2)
classOf[MyClass].getDeclaredFields.filter(_.getType.getInterfaces.contains(classOf[Special[_]]))