Использование @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