Methods on inner classes can be annotated with Exemplars just the same as those in top-level classes.
For non-static inner classes, it’s necessary to pass an instance of the outer class as the first parameter. For instance:
class Foo { @Exemplar(name="Foo/1") public Foo() { } class InnerFoo { private int x; @Exemplar(name="InnerFoo/1", args={"Foo/1"}) public InnerFoo() { this.x = -1; } @Exemplar(name="InnerFoo/2", args={"Foo/1", "5"}) public InnerFoo(int x) { this.x = x; } @Exemplar(instance="InnerFoo/2", expect="5") public int getX() { return x; } } }
Note that currently it is not possible to annotate methods of anonymous classes with Exemplars.