code: @Deprecated
      public static MeasureUnit internalGetInstance(String type, String subType) {
          if (type == null || subType == null) {
              throw new NullPointerException("Type and subType must be non-null");
          }
          if (!"currency".equals(type)) {
              if (!ASCII.containsAll(type) || !ASCII_HYPHEN_DIGITS.containsAll(subType)) {
                  throw new IllegalArgumentException("The type or subType are invalid.");
              }
          }
          Factory factory;
          if ("currency".equals(type)) {
              factory = CURRENCY_FACTORY;
          } else if ("duration".equals(type)) {
              factory = TIMEUNIT_FACTORY;
          } else {
              factory = UNIT_FACTORY;
          }
          return MeasureUnit.addUnit(type, subType, factory);
      }
docs: Create a MeasureUnit instance (creates a singleton instance).
  <p>
  Normally this method should not be used, since there will be no formatting data
  available for it, and it may not be returned by getAvailable().
  However, for special purposes (such as CLDR tooling), it is available.
  
  @deprecated This API is ICU internal only.
  @hide original deprecated declaration
  @hide draft / provisional / internal are hidden on Android