code: public static NumberingSystem getInstance(ULocale locale) {
          // Check for @numbers
          boolean nsResolved = true;
          String numbersKeyword = locale.getKeywordValue("numbers");
          if (numbersKeyword != null ) {
              for ( String keyword : OTHER_NS_KEYWORDS ) {
                  if ( numbersKeyword.equals(keyword)) {
                      nsResolved = false;
                      break;
                  }
              }
          } else {
              numbersKeyword = "default";
              nsResolved = false;
          }
  
          if (nsResolved) {
              NumberingSystem ns = getInstanceByName(numbersKeyword);
              if (ns != null) {
                  return ns;
              }
              // If the @numbers keyword points to a bogus numbering system name,
              // we return the default for the locale.
              numbersKeyword = "default";
          }
  
          // Attempt to get the numbering system from the cache
          String baseName = locale.getBaseName();
          // TODO: Caching by locale+numbersKeyword could yield a large cache.
          // Try to load for each locale the mappings from OTHER_NS_KEYWORDS and default
          // to real numbering system names; can we get those from supplemental data?
          // Then look up those mappings for the locale and resolve the keyword.
          String key = baseName+"@numbers="+numbersKeyword;
          LocaleLookupData localeLookupData = new LocaleLookupData(locale, numbersKeyword);
          return cachedLocaleData.getInstance(key, localeLookupData);
      }
docs: Returns the default numbering system for the specified ULocale.