Java源码系列(21) — Number

类定义

抽象类 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();
}
  • 上一篇

    空对象模式

原文 

https://phantomvk.github.io/2019/01/02/Number/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Java源码系列(21) — Number

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址