code: public <TEnum extends Enum<TEnum>> TEnum getEnum(Enum<?> key, Class<TEnum> enumClass, TEnum defaultValue)
      {
          if (key == null)
          {
              return defaultValue;
          }
  
          return getEnum(key.name(), enumClass, defaultValue);
      }
docs: Equivalent to {@link #getEnum(String, Class, Enum)
  getEnum}{@code (key.name(), enumClass, defaultValue)}.
  If {@code key} is null, {@code defaultValue} is returned.