我正在尝试编写一种使用泛型适应不同类型接口的方法。
在这段代码中,我预计 f an g 方法会打印出“BB”而不是“接口 A”。为什么会这样?
interface A {
String n="interface A";
}
interface B extends A {
String n = "BB";
}
public class Main {
<T extends A> void f() {
T a = null;
System.out.println(a.n);
}
<T extends A> void g() {
System.out.println(T.n);
}
public static void main(String[] args) {
Main m = new Main();
m.<B>f();
m.<B>g();
}