我有一個像List<? extends MyPojo> myPojos = new ArrayList<>();
的領域。如何獲得通配通用字段的上限?
我想通過反思得到myPojos
的上限是MyPojo
類型的事實。
我可以得到Field
沒問題,然後getGenericType
,但這只是返回一個Type
它沒有任何方法。我可以將它投射到ParameterizedType
,但是getActualTypeArguments()
。
在ParameterizedType
的toString()
方法返回的期望值,似乎是沒有辦法訪問的通配符上boud的信息,以及ParameterizedType
所有的實現似乎是在sun.
包。
那麼,我可以在不解析toString()
輸出的情況下獲得泛型類型的上限,而不依賴於sun.*
類嗎?或者這種信息是由於擦除而丟失的?
爲什麼?它就在源代碼中。 – EJP
@EJP我正在做代碼生成使用反射。 – ArtB