NumberValue: A representação da parte numérica do money

Em alguns momentos é importante recuperar e tratar as informações do dinheiro de forma separada, para isso, a interface dispõe de método para recuperar tanto a moeda quanto o valor monetário. Para a moeda ele obviamente retorna a interface CurrencyUnit e para representar o valor numérico é retornado a classe NumberValue. Essa classe é filha da Number do Java, assim é possível recuperar para os tipos primitivos básicos do Java (int, long, float, double etc.).

public class RetrieveInformationMethods {

    public  static  void main(String[] args) {

        MonetaryAmount money = Money.of(10, Monetary.getCurrency("BRL"));
        CurrencyUnit currency = money.getCurrency();
        Number number = money.getNumber();

    }
}

Além disso, com o NumberValue é possível realizar mais algumas operações, por exemplo, é possível definir qual classe será recuperada a partir do NumberValue, desde que essa classe seja filha da classe Number. No caso da implementação de referência serão todas as classes que são Number e estão dentro do JDK.

public class RetrieveInformationMethods2 {

    public  static  void main(String[] args) {


        MonetaryAmount money = Money.of(BigDecimal.valueOf(10.21), Monetary.getCurrency("BRL"));
        NumberValue number = money.getNumber();
        int precision = number.getPrecision();//4
        int scale = number.getScale();//2
        long amountFractionDenominator = number.getAmountFractionDenominator();//21
        long amountFractionNumerator = number.getAmountFractionNumerator();//10
        Class<?> numberType = number.getNumberType();//java.math.BigDecimal
        BigDecimal value = number.numberValue(BigDecimal.class);
        Integer integerValue = number.numberValue(Integer.class);


    }
}

results matching ""

    No results matching ""