code: public String getName(ULocale locale, int nameStyle, boolean[] isChoiceFormat) {
          if (!(nameStyle == SYMBOL_NAME || nameStyle == LONG_NAME)) {
              throw new IllegalArgumentException("bad name style: " + nameStyle);
          }
  
          // We no longer support choice format data in names.  Data should not contain
          // choice patterns.
          if (isChoiceFormat != null) {
              isChoiceFormat[0] = false;
          }
  
          CurrencyDisplayNames names = CurrencyDisplayNames.getInstance(locale);
          return nameStyle == SYMBOL_NAME ? names.getSymbol(subType) : names.getName(subType);
      }
docs: Returns the display name for the given currency in the
  given locale.  For example, the display name for the USD
  currency object in the en_US locale is "$".
  @param locale locale in which to display currency
  @param nameStyle selector for which kind of name to return.
  The nameStyle should be either SYMBOL_NAME or
  LONG_NAME. Otherwise, throw IllegalArgumentException.
  @param isChoiceFormat fill-in; isChoiceFormat[0] is set to true
  if the returned value is a ChoiceFormat pattern; otherwise it
  is set to false
  @return display string for this currency.  If the resource data
  contains no entry for this currency, then the ISO 4217 code is
  returned.  If isChoiceFormat[0] is true, then the result is a
  ChoiceFormat pattern.  Otherwise it is a static string. <b>Note:</b>
  as of ICU 4.4, choice formats are not used, and the value returned
  in isChoiceFormat is always false.
  <p>
  @throws  IllegalArgumentException  if the nameStyle is not SYMBOL_NAME
  or LONG_NAME.
  @see #getName(ULocale, int, String, boolean[])