クラスがある場合:
public class GenericClass<TBlah extends Number> {
public List<String> getList() {
return null;
}
}
別のクラスからそのメソッドを使用しようとすると:
public class OtherClass {
public void test() {
GenericClass a = null;
for (String s : a.getList()) {
}
}
}
for ループの上の行を次のように変更a.getList()
するまで、 a が返されるのはなぜですか。List<Object>
GenericClass<Number> a = null;
どの時点で a.getList() が返すList<String>
必要がありますか?
getList()
編集:変数「a」の宣言方法によって、指定されたコントラクトが影響を受ける理由がわかりません。getList()
常に a を返します。TBlahList<String>
が何であるかは問題ではありません。