当前位置: 首页 > 面试题库 >

如何为Java 7中的现有国家/地区代码向java.util.Currency添加新的Currency?

宰父夕
2023-03-14
问题内容

例如,中国货币具有ISO4217代码CNY。由于限制了使用该货币进行的全球自由交易,因此还有另一种等价的“离岸”货币CNH。维基百科对此有一些总结。

在中Java7,提供了一种方法来更新ISO4217 JVM附带的三个字母代码集。但是,它不能用于在现有的国家/地区代码中添加单独的货币代码:它将替换CNYCNH,这对我的目的不利。

如何在不覆盖的情况下添加CNH(不在ISO 4217列表中)可用货币集? Java 7``CNY

换句话说,如何为一个国家获得多个货币代码?

请注意以下问题:如何将新的货币代码添加到Java?被 提出和回答Java 6中。但是替换策略java.util.CurrencyData不起作用,因为该文件不再存在。


问题答案:

这里的关键是Java
7的一部分更改,
该更改允许更新货币列表,而无需通过替换名为的文件来重建rt.jar
currency.data。使用此方法而不是currency.properties覆盖方法,可以让您添加新的货币代码,而不会影响来自同一国家的其他货币代码。

剩下的就是如何实际构建一个新的currency.data。该文件是从名为的文件生成的CurrencyData.properties,可以在java
/ util的OpenJDK源代码中找到该文件。

我所做的就是复制CurrencyData.properties在OpenJDK源代码(openjdk\jdk\src\share\classes\java\util)中找到的内容,并更改以下行:

BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNY156-COP170-CRC188-CSD891-CUP192-\

BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNH156-CNY156-COP170-CRC188-CSD891-CUP192-\

然后,我GenerateCurrencyData.java在的源代码分发中获取了该文件openjdk\jdk\make\tools\src\build\tools\generatecurrencydata。该实用程序以与CurrencyData.properties相同的格式从System.In接收输入,并将其上转换为currency.data文件。我做了些微的更改,以便它使用FileInputStream而不是System.In:

currencyData.load(System.in);

currencyData.load(new FileInputStream(fileName));

在已编辑的CurrencyData.properties文件上运行该文件,然后将原始.data文件放在安全的位置,然后将生成的currency.data文件放入JRE\ lib目录中,现在您可以运行使用的代码Currency.getInstance("CNH")



 类似资料:
  • 我想要电话号码的国家代码列表。例如,美国(1),英国(44)...我知道libphonenumber是一个帮助手机解析、格式化和验证的好工具。然而,它似乎没有列出所有国家代码的功能。但是那些数据应该在libphonenumber的元数据中,对吗?有人有这方面的经验吗?

  • 问题内容: 如何将手机号码分为国家代码,区号和本地号码?例如,拆分后为+919567123456 国家区号= 91 区号= 9567 当地号码= 123456 问题答案: 用简单的算法解析电话号码是不可能的,您需要使用每个国家/地区的规则填充的数据表-因为每个国家/地区对电话号码的定界都不同。 国家/地区代码非常简单,只需使用Wikipedia中“ 国家/地区调用代码”文章中的数据,并构建一个包含

  • 我一直在使用谷歌libphonenumber来验证美国电话号码。现在我需要所有国家的国际支持。是否有可能反向查找使用libphonenumber的电话号码国家代码? 假设DB保存了英国号码448456779463。是否可以通过libphonenumber来检测该号码是否为UK?看来我只能检查号码的有效性,前提是我首先知道它的原产国。但是,如果你有数字却不知道它的来源国,该怎么办呢?

  • 我必须更新历史数据。说到更新,我的意思是向S3上的现有分区添加新行,有时是新列。 当前分区按日期实现:。为了避免每个分区有太多对象,我执行以下操作来维护单个对象/分区: 存在这样一种情况,我必须添加具有以下列值的某些行: 这意味着此路径中的文件(S3对象):

  • 问题内容: 我已经下载了ip-to-country.csv,它具有映射到国家的ip范围。如何将这些数据存储到数据库中,如何查询IP地址的范围以了解IP地址从何而来? 问题答案: 我编写了一个名为ip2c的小程序库来完成此操作。它使用webhosting.info中的数据库,但也支持Software77中的数据库。 它将CSV信息转换为紧凑的二进制格式,并且可以直接在文件,内存或内存映射文件中进行搜

  • 以下是firebase文档数据 我想向购买的id添加一个新的映射值。这是当前代码 但是使用此代码替换了map值,如何向现有map添加另一个map值 这样地