Si encuentras algún detalle que no comprendes puedes dejarnos un comentario y haremos todo lo posible de ayudarte lo más rápido posible.
Solución:
java.util.Currency.getInstance
admite solo moneda ISO 4217 codigos, no números de moneda. Sin embargo, puede recuperar todas las monedas utilizando el getAvailableCurrencies
y luego busque el que tiene el código 840 comparando el resultado del getNumericCode
método.
Me gusta esto:
public static Currency getCurrencyInstance(int numericCode)
Set currencies = Currency.getAvailableCurrencies();
for (Currency currency : currencies)
if (currency.getNumericCode() == numericCode)
return currency;
throw new IllegalArgumentException("Currency with numeric code " + numericCode + " not found");
Con Java 8:
Optional currency = Currency.getAvailableCurrencies().stream().filter(c -> c.getNumericCode() == 840).findAny();
Una mejor manera de hacerlo:
public class CurrencyHelper
private static Map currencies = new HashMap<>();
static
Set set = Currency.getAvailableCurrencies();
for (Currency currency : set)
currencies.put(currency.getNumericCode(), currency);
public static Currency getInstance(Integer code)
return currencies.get(code);
Con un poco de trabajo, el caché se puede hacer más eficiente. Eche un vistazo al código fuente de la clase Moneda para obtener más información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)