如何检查类是否为java.lang.Number类型

时间:2012-01-15 16:16:46

标签: java

我正在从第三方.jar获取Class<?>与方法的参数类型有关。我需要根据Class<?>实际上的内容采取不同的行动。

如果它是子类java.lang.Number的任何内容(例如IntegerBigDecimal),我需要采取特殊的行动。

我无法使用instanceof。我担心,如果我使用:

Class<?> someClass = getParameterTypeFrom3rdParty();
if(someClass == Number.class)
    // ...

如果Class<?> 一个Number,它就会执行。如何将继承合并到混合中,以便获得所有Number的子类型?

提前致谢!

1 个答案:

答案 0 :(得分:15)

Number.class.isAssignableFrom(someClass); 

应该做的伎俩