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.