B.4 Number和Math
Java 8 API对Number和Math也做了改进,为它们增加了新的方法。
B.4.1 Number
Number类中新增的方法如下。
Short、Integer、Long、Float和Double类提供了静态方法sum、min和max。在第5章介绍reduce操作时,你已经见过这些方法了。Integer和Long类提供了compareUnsigned、divideUnsigned、remainderUnsigned和toUnsignedString方法来处理无符号数。Integer和Long类也分别提供了静态方法parseUnsignedInt和parseUnsignedLong将字符解析为无符号int或者long类型。Byte和Short类提供了toUnsignedInt和toUnsignedLong方法通过无符号转换将参数转化为int或者long类型。类似地,Integer类现在也提供了静态方法toUnsignedLong。Double和Float类提供了静态方法isFinite,可以检查参数是否为有限浮点数。Boolean类现在提供了静态方法logicalAnd、logicalOr和logicalXor,可以在两个boolean之间执行and、or和xor操作。BigInteger类提供了byteValueExact、shortValueExact、intValueExact和longValueExact,可以将BigInteger类型的值转换为对应的基础类型。不过,如果在转换过程中有信息的丢失,那么方法会抛出算术异常。
B.4.2 Math
如果Math中的方法在操作中出现溢出,Math类提供了新的方法可以抛出算术异常。支持这一异常的方法包括使用int和long参数的addExact、subtractExact、multipleExact、incrementExact、decrementExact和negateExact。此外,Math类还新增了一个静态方法toIntExact,可以将long值转换为int值。其他的新增内容包括静态方法floorMod、floorDiv和nextDown。
