Java 6 重新定义货币符号(通过CurrencyNameProvider?)

标签 java locale currency redefine

最近,Sun/Oracle 将乌克兰格里夫纳的货币代码更改为不正确的代码,我必须在代码中修复该问题。

我发现 Java 6 应该允许我通过CurrencyNameProvider ( here ) 在 Java 级别执行此操作(详细信息为 see also )。

不幸的是,我不明白哪些语言环境应该返回方法

public Locale[] getAvailableLocales() {}

欢迎任何工作示例!

最佳答案

// Be aware that you need to provide ukrainian names to ALL currency symbols which
// your program uses.

import java.util.Locale;
import java.util.spi.CurrencyNameProvider;

public class UaCurrencyNameProvider extends CurrencyNameProvider {

    private static final Locale UKRAINE = new Locale("uk", "UA");
    private static final String UAH_SYMB = "грн.";
    private Locale[] availableLocales = new Locale[] {UKRAINE};

    @Override
    public Locale[] getAvailableLocales() {
        return availableLocales;
    }

    @Override
    public String getSymbol(String currencyCode, Locale locale) {
        if(currencyCode == null) {
            throw new NullPointerException();
        }
        else if(!UKRAINE.equals(locale)) {
            throw new IllegalArgumentException("Locale not supported");
        }
        else if("UAH".equals(currencyCode)) {
            return UAH_SYMB;
        } else {
            return null;
        }
    }
}

关于Java 6 重新定义货币符号(通过CurrencyNameProvider?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5842295/

相关文章:

ANDROID-向用户汇款?支付宝

java - java 中的 MAGIMAGEHEADER

postgresql - Postgres 12 不区分大小写的比较

Android:如何为应用程序设置文化值

ios - 如何确定语言环境货币是否有小数点

node.js - 我应该如何在 Mongoose 中存储价格?

java - 如何使用 XMLSerializer 正确缩进 XML?

java - 安装 jar 后无法解决依赖关系

java - 创建自定义 JNDI 资源

c++ - boost locale c++ - 了解基础知识