cloud.speech.v1.StreamingRecognizeResponse - ошибка: метка регистра переключателя перечисления должна быть неквалифицированным именем константы перечисления - PullRequest
2 голосов
/ 06 января 2020

Я сделал проект в Android Studio с Google Cloud Platform. Java Пример проекта из github в год go. К тому времени он работал правильно, но через месяц go, когда я открыл проект, я столкнулся со следующей ошибкой:

error: an enum switch case label must be the unqualified name of an enumeration constant

Я проверил другие решения на SO, Ex , но в классе StreamingRecognizeResponse я видел, что код написан так, как предлагает решение. Пример:

protected final Object dynamicMethod(
  com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
  Object arg0, Object arg1) {
switch (method) {
  case NEW_MUTABLE_INSTANCE: {
    return new com.google.cloud.speech.v1.StreamingRecognizeResponse();
  }
  case IS_INITIALIZED: {      //**clicking on first error takes to this line.** but it is as solution suggests.
    return DEFAULT_INSTANCE;
  }
  case MAKE_IMMUTABLE: {
    results_.makeImmutable();
    return null;
  }
  case NEW_BUILDER: {
    return new Builder();
  }
  case VISIT: {...
 ...................

Я больше не могу скомпилировать свой проект, и мне нужно исправить эту ошибку. Любое предложение для решения этой проблемы поможет.

1 Ответ

0 голосов
/ 04 февраля 2020

Неясно, на какой Java образец вы ссылаетесь, но com.google.protobuf перечисление GeneratedMessageLite.MethodToInvoke обычно имеет следующие константы:

Object dynamicMethod(MethodToInvoke method, Object arg0, Object arg1) {
    switch (method) {
        case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
            break;
        }
        case IS_INITIALIZED: {
            break;
        }
        case MAKE_IMMUTABLE: {
            results_.makeImmutable();
            return null;
        }
        case MERGE_FROM: {
            break;
        }
        case NEW_BUILDER: {
            return new Builder();
        }
        case NEW_INSTANCE: {
            return new com.google.cloud.speech.v1.StreamingRecognizeResponse();
        }
        case PARSE_PARTIAL_FROM: {
            break;
        }
    }
}

Нет NEW_MUTABLE_INSTANCE и нет VISIT. Можно также перечислить их:

for (GeneratedMessageLite.MethodToInvoke c : GeneratedMessageLite.MethodToInvoke.values()) {
    System.out.println(c);
}

Также см. StreamingRecognizeResponse.

...