检查对象是否是任何“数字”类的实例?
2022-09-05 00:02:27
Object o = ?
if ((o instanceof Integer) || (o instanceof Double) || (o instanceof Float)|| (o instanceof Long))
是否有较短的版本来检查对象是否为任何数字类型?
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)) {
注意:这会将 、 和 视为数字。Byte
Short
BigInteger
BigDecimal
如果你看一下整数的Javadoc,你可以看到它的父级是Number,它又有子类,所以会匹配其中任何一个。AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, DoubleAccumulator, DoubleAdder, Float, Integer, Long, LongAccumulator, LongAdder, Short
instance Number