B.4 NumberMath

Java 8 API对NumberMath也做了改进,为它们增加了新的方法。

B.4.1 Number

Number类中新增的方法如下。

  • ShortIntegerLongFloatDouble类提供了静态方法summinmax。在第5章介绍reduce操作时,你已经见过这些方法了。
  • IntegerLong类提供了compareUnsigneddivideUnsignedremainderUnsignedtoUnsignedString方法来处理无符号数。
  • IntegerLong类也分别提供了静态方法parseUnsignedIntparseUnsignedLong将字符解析为无符号int或者long类型。
  • ByteShort类提供了toUnsignedInttoUnsignedLong方法通过无符号转换将参数转化为int或者long类型。类似地,Integer类现在也提供了静态方法toUnsignedLong
  • DoubleFloat类提供了静态方法isFinite,可以检查参数是否为有限浮点数。
  • Boolean类现在提供了静态方法logicalAndlogicalOrlogicalXor,可以在两个boolean之间执行andorxor操作。
  • BigInteger类提供了byteValueExactshortValueExactintValueExactlongValueExact,可以将BigInteger类型的值转换为对应的基础类型。不过,如果在转换过程中有信息的丢失,那么方法会抛出算术异常。

B.4.2 Math

如果Math中的方法在操作中出现溢出,Math类提供了新的方法可以抛出算术异常。支持这一异常的方法包括使用intlong参数的addExactsubtractExactmultipleExactincrementExactdecrementExactnegateExact。此外,Math类还新增了一个静态方法toIntExact,可以将long值转换为int值。其他的新增内容包括静态方法floorModfloorDivnextDown