4
我正在從屬於方法參數類型的第三方.jar提供Class<?>
。我需要根據這個Class<?>
的實際情況採取不同的行動。如何檢查一個類是否爲java.lang.Number類型
如果是java.lang.Number
的子類(如Integer
或BigDecimal
)的任何東西,我需要採取特殊的行動。我不能使用instanceof
。我怕,如果我使用:
Class<?> someClass = getParameterTypeFrom3rdParty();
if(someClass == Number.class)
// ...
那麼如果Class<?>
是只有一個Number
它將執行。我怎樣才能把繼承融合到混合中,這樣我得到了Number
的所有子類型?
在此先感謝!
哇!謝謝約翰!出於好奇,這是否也適用於接口?我想檢查是否有CharSequence的impl(如String,StringBuffer等)。能夠使用CharSequence.class.isAssignableFrom(someClass)會很好......再次感謝! – IAmYourFaja 2012-01-15 16:23:10
不客氣。是的,它也適用於接口 – 2012-01-15 16:24:15
@AdamTannon [API文檔](http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isAssignableFrom%28java.lang.Class% 29)清楚地說明它是如何使用的。 – 2012-01-15 16:24:55