私はJava Generics and adding numbers togetherのような質問を頻繁に見てきました。答えは通常Number
で何もできません。Numberクラスの目的は何ですか?
Sourcecodeは、例題のオブジェクトとは異なり、Number
がほとんど空のシェルであることを示しています。
この時点で私の代わりに、具体的なサブタイプのNumber
を使用すると、重要な(もしあれば)の利点を持っている状況を考えることはできません。通常はNumber
で始まりますが、後で実際にそれを使用して問題に遭遇し、とにかくサブタイプに変更します。しかし、これは私の限られた経験であるかもしれません。
このクラスの目的は、実際の機能を持たない他の数値型の共通の祖先ではないのですか?
安全にですか? ;-)それについては分かりません。 –
さて、可能な限り安全に...少なくともあなたは例外をスローしません!もちろん、範囲を確認せずに不用意に変換しようとすると、切り捨てや丸めが問題になるかどうかを検討すると、間違いなく問題になります。 – Renato
実際に安全にしたい場合は、値をBigDecimalとして保存し、さまざまな正確なメソッド(BigDecimal#longValueExactなど)を使用します。目的のプリミティブのサイズが適切に値を格納できない場合、例外がスローされます。 – Saish