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