Operaciones Aritméticas
Con MonetaryAmount
es posible realizar operaciones como substracción y suma, subrayando que las implementaciones son inmutables, osea, el resultado resultará en una nueva instancia. Al realizar operaciones que reciben un MonetaryAmount
el resultado será también un MonetaryAmount
, pero de la implementación de la instancia que llamó al metodo.
public class ArithmeticOperations {
public static void main(String[] args) {
CurrencyUnit currency = Monetary.getCurrency("BRL");
MonetaryAmount money = Money.of(BigDecimal.TEN, currency);
MonetaryAmount money2 = FastMoney.of(BigDecimal.TEN, currency);
MonetaryAmount addResult = money.add(money2);//BRL 20 Money implementation
MonetaryAmount subtractResult = money2.subtract(addResult);//BRL -10 FastMoney implementation
}
}
Para las operaciones de multiplicación, división y resto es necesário pasar un parametro del tipo Number
.
public class ArithmeticOperations2 {
public static void main(String[] args) {
CurrencyUnit currency = Monetary.getCurrency("BRL");
MonetaryAmount money = Money.of(100, currency);
Number number = 20;
MonetaryAmount divideResult = money.divide(number);//BRL 5
MonetaryAmount remainderResult = money.remainder(30);//BRL 10
MonetaryAmount resultMultiply = money.multiply(5);//BRL 500
}
}
También es posible realizar operaciones de negación con MonetaryAmount
.
public class ArithmeticOperations3 {
public static void main(String[] args) {
CurrencyUnit currency = Monetary.getCurrency("BRL");
MonetaryAmount money = Money.of(100, currency);
MonetaryAmount negateResult = money.negate();//BRL -100
MonetaryAmount plusResult = money.plus();//BRL 100
}
}