首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaMoney:在moneta上设置没有编译时依赖项的CurrencyStyle

JavaMoney:在moneta上设置没有编译时依赖项的CurrencyStyle
EN

Stack Overflow用户
提问于 2018-06-22 21:57:53
回答 1查看 270关注 0票数 1

我正在尝试创建一个使用货币单位符号的MonetaryAmountFormat

代码语言:javascript
复制
MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(
  AmountFormatQueryBuilder.of(Locale.GERMANY)
                          .set(org.javamoney.moneta.format.CurrencyStyle.SYMBOL)
                          .set("pattern", "#,##0.##¤")
                          .build()
);

(摘自How to format MonetaryAmount with currency symbol?Customizing a MonetaryAmountFormat using the Moneta (JavaMoney) JSR354 implemenation)。

java/maven项目在运行时(而不是编译时)范围内依赖于moneta。似乎类CurrencyStyle和它的值SYMBOL是moneta的一部分,而不是java-money API的一部分。因此,代码无法编译。

我创建了这个丑陋的变通方法:

代码语言:javascript
复制
String currencyStyle = "org.javamoney.moneta.format.CurrencyStyle";
final Enum<?> SYMBOL = Enum.valueOf((Class<? extends Enum>) Class.forName(currencyStyle), "SYMBOL");
MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(
  AmountFormatQueryBuilder.of(Locale.GERMANY)
                          .set(currencyStyle, SYMBOL)
                          .set("pattern", "#,##0.##¤")
                          .build()
);

有没有可能在没有这种攻击的情况下创建一个使用货币单位符号的MonetaryAmountFormat

EN

回答 1

Stack Overflow用户

发布于 2018-06-24 14:37:42

也许使用DecimalFormat作为MonetaryAmountFormat的替代品是一种选择。

缺点:

NumberMonetaryAmount之间的

  • 转换必须手动完成
  • 仅在您没有更改货币单位时才起作用(单位取自格式,而不是MonetaryAmount对象)

示例:

代码语言:javascript
复制
NumberFormat format = new DecimalFormat("#,##0.##¤", DecimalFormatSymbols.getInstance(Locale.GERMANY));

// format
MonetaryAmount source = ...;
String formattedAmount = format.format(source.getNumber());

// parse
Number numberAmount = format.parse(formattedAmount);
MonetaryAmount target = Monetary.getDefaultAmountFactory().setCurrency("EUR").setNumber(numberAmount).create()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50989627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档