检查对象是否是任何'number'类的实例?


Object o = ?
if ((o instanceof Integer) || (o instanceof Double) || (o instanceof Float)|| (o instanceof Long))

是否有较短的版本来检查对象是否是任何数字类型?

你可以做

if (o instanceof Number) {
    Number num = (Number) o;

如果你只有你可以做的类

Class clazz = o.getClass();
if (Number.class.isAssignableFrom(clazz)) {

注意:这将ByteShortBigIntegerBigDecimal视为数字。

如果你看一下 Javadoc for Integer,你可以看到它的父级是 Number,它又有子类AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, DoubleAccumulator, DoubleAdder, Float, Integer, Long, LongAccumulator, LongAdder, Short instance Number所以会匹配其中任何一个。

最新更新