Java構文では、クラスは 質問します

Java構文では、クラスは 質問します

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
}

おすすめ記事