检查对象是否为任何“数字”类的实例?

fweigl:
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,您会看到它的父级是NumberNumber本身又具有子类,AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, DoubleAccumulator, DoubleAdder, Float, Integer, Long, LongAccumulator, LongAdder, Short因此instance Number可以匹配任何这些子类

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章