抽象类 Number 代表所有能从 数值型 转换到 基本类型 平台类的父类。这些基本类型包括 byte 、 double 、 float 、 int 、 long 、 short 。
public abstract class Number implements java.io.Serializable
从特定 Number 实现的数值型到给定基本类型转换的特定语义,由所定义的 Number 实现定义。例如 Double 是 Number 的子类,转换到基本类型由 Double 的实现决定。
对于平台类来说,转换行为类似基本类型向下转换,或类似由 The Java™ Language Specification 定义的对基本类型之间范围扩大转换。因此,转换可能会丢失有关数值总大小的信息、失去原有精度,或返回不同于输入值正负号的结果。源码来自 JDK11 。
此抽象类共定义了 4个抽象方法 和 2个成员方法 。这些抽象方法,需要由 Number 的子类实现,例如 Double 、 Float 等。通过这些方法,可按照指定基本类型获取值,但是获取值和实际值相比可能会丢失数值原有精度。
// 把指定数值按照int基本类型返回 public abstract int intValue(); // 把指定数值按照long基本类型返回 public abstract long longValue(); // 把指定数值按照float基本类型返回 public abstract float floatValue(); // 把指定数值按照double基本类型返回 public abstract double doubleValue(); // 把指定数值按照byte基本类型返回 public byte byteValue() { return (byte)intValue(); } // 把指定数值按照short基本类型返回 public short shortValue() { return (short)intValue(); }
上一篇
空对象模式