Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using @AutoValue with nested classes gives a "cannot find symbol" error

When trying to use @AutoValue with nested classes:

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();
  }
}

I get a compiler error cannot find symbol for AutoValue_Example. Any ideas on what I'm doing wrong?

like image 584
Amitha Perera Avatar asked Mar 26 '14 18:03

Amitha Perera


1 Answers

When your class is nested like this, the generated AutoValue class would be named AutoValue_Nested_Example. As stated in the docs:

Nesting

For a nested abstract value type called Foo.Bar.Qux, the generated implementation class is named AutoValue_Foo_Bar_Qux.

like image 54
Louis Wasserman Avatar answered Nov 13 '22 07:11

Louis Wasserman