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 for Integer,您会看到它的父级是Number,而Number本身又具有子类,AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, DoubleAccumulator, DoubleAdder, Float, Integer, Long, LongAccumulator, LongAdder, Short
因此instance Number
可以匹配任何这些子类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句