1

MonetaryAmountFormat通貨単位記号を使用するを作成しようとしています:

MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(
  AmountFormatQueryBuilder.of(Locale.GERMANY)
                          .set(org.javamoney.moneta.format.CurrencyStyle.SYMBOL)
                          .set("pattern", "#,##0.##¤")
                          .build()
);

( MonetaryAmount を通貨記号でフォーマットする方法とMoneta (JavaMoney) JSR354 実装を使用した MonetaryAmountFormat のカスタマイズ から取得)。

java/maven プロジェクトは、実行時 (コンパイル時ではない) スコープで moneta に依存しています。クラスCurrencyStyleとその値SYMBOLは、j​​ava-money リファレンス実装である moneta の一部であり、java-money API の一部ではないようです。したがって、コードはコンパイルされません。

私はこの醜い回避策を作成しました:

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このハックなしで通貨単位記号を使用するを作成することは可能ですか?

4

1 に答える 1