class Fields {
void foo() throws Exception {
Class ca = A.class;
Class cb = B.class;
ca.getField("a1");
ca.getField("a2");
ca.getField("a3");
ca.getField("a4");
ca.getField("b1");
ca.getField("b2");
ca.getField("b3");
ca.getField("b4");
cb.getField("a1");
cb.getField("a2");
cb.getField("a3");
cb.getField("a4");
cb.getField("b1");
cb.getField("b2");
cb.getField("b3");
cb.getField("b4");
ca.getDeclaredField("a1");
ca.getDeclaredField("a2");
ca.getDeclaredField("a3");
ca.getDeclaredField("a4");
ca.getDeclaredField("b1");
ca.getDeclaredField("b2");
ca.getDeclaredField("b3");
ca.getDeclaredField("b4");
cb.getDeclaredField("a1");
cb.getDeclaredField("a2");
cb.getDeclaredField("a3");
cb.getDeclaredField("a4");
cb.getDeclaredField("b1");
cb.getDeclaredField("b2");
cb.getDeclaredField("b3");
cb.getDeclaredField("b4");
C.class.getField("c");
C.class.getField("d");
}
static class A {
public int a1;
protected int a2;
int a3;
private int a4;
}
static class B extends A {
public int b1;
protected int b2;
int b3;
private int b4;
}
static final class C extends A {
public int c;
}
}