このような構文を使用する方法がわかりたいと思います。私は以下のように簡単なプログラム、それはのようにコンパイルエラーを示しなぜクラス<? extends T>用法
public class Sample{
public static void main(String[] args) {
Class<? extends Collection> someCollectionClass = someMethod();
}
public static ArrayList someMethod() {
return new ArrayList();
}
}
、
- Collection is a raw type. References to generic type Collection<E> should be
parameterized
- Type mismatch: cannot convert from ArrayList to Class<? extends Collection>
ここでは、そのクラスは、(それがノウハウを受け入れることを、そのオブジェクトを実際にクラスを期待していないと書かれている、それはです?)コレクションを拡張します。だからArrayListには何が間違っていますか? ArrayList
がClass
ではありませんので、私はClass<? extends T>
あなたはクラス extends T> ''として何かを宣言することができますが、それはJavaで任意のオブジェクトを参照していない、それはクラスが 'Object'が何のためにあるのかだ詳細についてはこちらをご覧ください:のhttp:/ /docs.oracle.com/javase/6/docs/api/java/lang/Class.htmlを参照してください。しかし、 'Class'は実際の実装と詳細を参照します。 – dcpomero