静的フィールドFを持つクラスAがあります。
class A {
public static String F = null;
}
クラスB:
class B extends A {
public static String F = "somestring";
}
フィールドFを使用するメソッドを持つ型付きクラス:
class C<T extends A> {
public void someMethod() {
String someString = T.F;
// Manipulations with someString
}
}
そしてそれを呼び出す私のコード。
C<B> c = new C<B>();
c.someMethod();
someStringで操作しようとすると、nullポインタ例外が発生します。したがって、TFはnullですが、TはBなので、「somestring」である必要があります。なんで?