Использование @AutoValue с вложенными классами приводит к ошибке "не удается найти символ"

При попытке использовать @AutoValue с вложенными классами:

public class Nested {
  @AutoValue
  public static abstract class Example {
    public static Example create(String name, int integer) {
      return new AutoValue_Example(name, integer);
    }
    public abstract String name();
    public abstract int integer();
  }
}

Я получаю ошибку компилятора cannot find symbol за AutoValue_Example, Есть идеи, что я делаю не так?

1 ответ

Решение

Когда ваш класс вложен так, сгенерированный класс AutoValue будет назван AutoValue_Nested_Example, Как указано в документах:

гнездование

Для вложенного типа абстрактного значения с именем Foo.Bar.Qux сгенерированный класс реализации называется AutoValue_Foo_Bar_Qux.

Внутренний класс (если он статический) создается в отдельном исходном файле с именем AutoValue_outerClass_innerClass

Другие вопросы по тегам