code: public static LocaleDisplayNames getInstance(ULocale locale, DialectHandling dialectHandling) {
          LocaleDisplayNames result = null;
          if (FACTORY_DIALECTHANDLING != null) {
              try {
                  result = (LocaleDisplayNames) FACTORY_DIALECTHANDLING.invoke(null,
                          locale, dialectHandling);
              } catch (InvocationTargetException e) {
                  // fall through
              } catch (IllegalAccessException e) {
                  // fall through
              }
          }
          if (result == null) {
              result = new LastResortLocaleDisplayNames(locale, dialectHandling);
          }
          return result;
      }
docs: Returns an instance of LocaleDisplayNames that returns names formatted for the provided locale,
  using the provided dialectHandling.
  @param locale the display locale
  @param dialectHandling how to select names for locales
  @return a LocaleDisplayNames instance