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