我遇到过 java.math.BigDecimal
和 android.icu.math.BigDecimal
因为我需要在项目中使用 BigDecimal
.
我意识到 Android BigDecimal
需要 API 级别 24
这两个类有什么区别?请问在Android实现上有没有性能优化?
最佳答案
android.icu.math.BigDecimal
是 ICU library 的一部分(Unicode 的国际组件)。自 API 24 起,Android 框架公开了一些 ICU4J 类供您使用。 Android documentation on Unicode and I18N support状态:
Some classes in the
java
andandroid
packages have equivalents to those found in ICU4J. However, ICU4J often provides broader support for standards and languages.
不要被上面的引用搞糊涂了,因为 ICU 类确实驻留在 android
包中。为了避免冲突,它们已从 com.ibm.icu
移动到 android.icu
。
特别是关于 BigDecimal
:I found a discussion on the internet得出的结论是 BigDecimal
在 Java 中可用之前在 ICU 中可用,并出于兼容性目的保留在库中。
底线:使用您喜欢的任何实现,但 java.math.BigDecimal
将来不太可能被弃用。
关于Java BigDecimal 与 Android BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52493345/