spe*_*ed9 7 java reflection inheritance interface superclass
interface A {
public static String name = "A";
}
interface B {
public static String name = "B";
}
class X implements A { }
class Y extends X implements B { }
public void test_getField() {
try {
assertEquals(B.class.getField("name"), Y.class.getField("name"));
} catch (NoSuchFieldException e) {
fail("Got exception");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么Y.class.getField("name")返回B.name而不是A.name?Java规范中有没有答案?