Class<? extends Something>
これが私の解釈ですが、これはクラス テンプレートですが、クラス ? はクラスの名前が未定であり、Something クラスを拡張することを意味します。
私の解釈に何か間違いがあれば、教えてください。
ベストアンサー1
ここにいくつか混乱を招く回答があるので、これを明確にしてみたいと思います。ジェネリックは次のように定義されます。
public class Foo<T> {
private T t;
public void setValue(T t) {
this.t = t;
}
public T getValue() {
return t;
}
}
Foo のジェネリックで常に Bar クラスを拡張したい場合は、次のように宣言します。
public class Foo<T extends Bar> {
private T t;
public void setValue(T t) {
this.t = t;
}
public T getValue() {
return t;
}
}
は?
変数を宣言するときに使用されます。
Foo<? extends Bar>foo = getFoo();
または
DoSomething(List<? extends Bar> listOfBarObjects) {
//internals
}