Java的货币和货币操作 - JSR 354



我只是好奇是否有人知道JSR354是否会作为未来JDK的一部分进行正式实现。

  • JDK 11 JavaDocs
  • JSR354参考实现

当我在线搜索JDK 11文档时,看起来并没有包括MonetaryMonetaryAmount类。但是jsr354的实现存在于jsr354ri下的Github中。

如果我不想遵循参考实现,这是否意味着我可以编写自己的实现?我的目的是支持其他货币,例如人民币(离岸(CNH,它没有官方的ISO认可,但它是众所周知的。

谢谢,

感谢您迄今为止的投入。作为指定的新维护负责人之一(另请参阅转让投票(,我可以从我们这边给出一个更正式的答案。

正如你所知,Oracle已经从Java 11中删除了许多功能,JavaFX可能是最突出的"受害者",它被发布到一个由其他几家公司、一些Oracle员工和社区其他成员支持的开源生态系统中。

JSR354及其一些扩展背后的更广泛的项目JavaMoney一直扮演着类似的角色。转让投票后,有一家公司(Trivadis(和两名EG成员作为维护负责人。此外,还有许多其他贡献的扩展,包括像Red Hat或Zalando这样的大牌。因此,JSR354和可能的后续版本(又名JavaMoney2.x(对JavaSE进行了补充,类似于OpenJFX、ApacheNetBeans或其他开放社区工作在不成为JDK不可或缺的一部分的情况下所做的工作。我在Eclipse社区日上与一位熟悉OpenJDK的Oracle员工进行了交谈,他证实,这也符合Oracle的兴趣,即专注于JDK的核心功能,而其他供应商和社区则围绕它提供其他功能。此外,在为JDK本身开发的"迭代"发布计划下,我们还将推出未来的Money JSR,但对其他JSR开放,我们计划以符合社区需求的速度提供定期发布。如果说意大利或另一个国家由于过度债务或另一种类似"脱欧"的情况发生而失去了在欧元区的地位,那么这些国家的货币就会改变。独立的Money JSR可以通过提供必要的更改来立即响应,而无需等待JDK。

  1. 最初JavaMoney的目标是包含在JDK中,但后来决定将其作为JavaEE规范。正如您可能知道的,从JDK11开始,JavaEE类不是JDK的一部分,它们应该作为任何其他常见的依赖项安装,即通过Maven
  2. 是的,您可以添加任何自定义货币,这是开箱即用的支持。您需要添加CurrencyProviderSpi的实例,如注册自定义货币教程中所述

最新更新