>>228
なるほど、そういうことですか。
instance.getKey()が少し遅くても大丈夫ならこれでも良いかも。

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

class Sub extends Super {
public static final String KEY = "sub";
}