1
我正在构建一个自动的swagger插件。在这里,我运行带注释的类。在Groovy中获取List的泛型类型
当我们谈论String,Long等的数据类型对我来说已经足够使用simpleName方法了。
但是,当获得一个List类,集合,集合我需要知道泛型类型。
那么我该如何做到这一点?
该做的大部分工作的代码示例:
class Foo {
List<String> myString
}
class SomeUtilClass {
static String dataType(Class<?> c) {
return c.simpleName
}
static List<String> dataTypes(Class<?> c) {
return c.metaClass.properties.findAll {MetaProperty metaProperty ->
metaProperty?.field != null
}.collect {dataType(it.type)}
}
}
SomeUtilClass.dataTypes(Foo) // ["List"] but I want something like ["List<String>"]
由于Groovy是JVM上运行:https://stackoverflow.com/questions/3403909/get-generic-type-of-class-at-runtime – Opal
这个问题几乎回答我的问题,但似乎是更多的新实例的运行时。我不想检查对象。 – Dasma
泛型在运行时完全被擦除。不仅在对象上,而且在类上。 – Opal