>>219
適当だけどこんなんはどう?
getKeyをstaticにすると駄目な所が出たりしない?

public class Hoge {
public static void main(String[] args) {
System.out.println(getKey(Super.class));
System.out.println(getKey(Sub.class));
}

public static String getKey(Class<? extends Super> c) {
try {
return (String) c.getField("KEY").get(null);
} catch (Exception e) {
return null;
}
}
}
class Super {
public static final String KEY = "super";
public String getKey() { return KEY; }
}
class Sub extends Super {
public static final String KEY = "sub";
public String getKey() { return KEY; }
}