No MonetaryAmountsSingletonSpi 已加载

sca*_*rkd 3 java-money

在 pom.xml 中添加的依赖项:

<dependency>
    <groupId>javax.money</groupId>
    <artifactId>money-api</artifactId>
    <version>1.0.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

相关代码:

MonetaryAmount mon = Monetary.getDefaultAmountFactory()
                        //getCurrency() returns String
                        .setCurrency(amount.getCurrency())
                        //getContent() returns BigDecimal
                        .setNumber(amount.getContent())
                        .create();
Run Code Online (Sandbox Code Playgroud)

单元测试时我得到这个异常:

javax.money.MonetaryException: No MonetaryAmountsSingletonSpi loaded.

at javax.money.Monetary.lambda$getDefaultAmountFactory$13(Monetary.java:291)
Run Code Online (Sandbox Code Playgroud)

Chr*_*ten 5

JavaMoney 分为 API 和实现的单独包,但您只将 API 添加到 POM。您还需要一个实现,例如参考实现:

<dependency>
  <groupId>org.javamoney</groupId>
  <artifactId>moneta</artifactId>
  <version>1.2.1</version>
  <type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)