我经常看到类似Java Generics and adding numbers together这样的问题,答案通常归结为您无法真正对Number
本身做任何事情。Number类的用途是什么?
的Sourcecode表明Number
大多不像示例对象的空壳。
在这一点上,其中使用Number
而不是一个具体亚型我想不出的情况有显著(如果有的话)的优势。通常我会从Number
开始,但在实际使用它时会遇到问题,并将其更改为子类型。但这可能只是我有限的经验。
所以我想知道,这是什么类的其他然后是数字类型的,没有实际功能的共同祖先的目的是什么?
安全吗? ;-)不确定。 – 2011-12-29 18:40:01
那么,尽可能安全......至少你不会抛出异常!但是,当然,如果您尝试在不检查范围的情况下不小心转换,或者考虑截断和舍入是否会成为问题,那么您肯定会遇到麻烦。 – Renato 2011-12-29 19:03:18
如果您确实想要安全地执行此操作,请将该值存储为BigDecimal,然后使用各种确切的方法(例如BigDecimal#longValueExact)。如果所需基元的大小无法正确存储值,则会引发异常。 – Saish 2011-12-29 22:51:07