スーパーで境界付きワイルドカードを使用する場合、型パラメータは指定された型にできることを意味しますまたはそのスーパークラスのいずれか。たとえば、List親クラス のいずれかのオブジェクトを保持できることを示します。
最初の例では、リスト list は次のように宣言されています。リスト
2 番目の例では、List< を渡そうとしました。文字列> List を期待するメソッドに。スーパーナンバー>。このコンパイル エラーは、String が Number のサブクラスではないために発生します。あなたが提示したロジックは間違っています: Object は Number のスーパークラスではなく、String は Number のサブクラスではありません。
下限ワイルドカードとは異なり、上限ワイルドカードは プロデューサ として使用できません。これは、List から個々の要素を取得できないことを意味します。スーパーナンバー>。この制限は、型安全性違反を防ぐために存在します。
スーパーで区切られたワイルドカードを使用すると、共通のスーパークラスから継承する複数の型のオブジェクトを使用できるコレクションを作成できます。 。ただし、指定されたスーパークラスのサブクラスではないオブジェクトを追加できないため、これらのコレクションに要素を追加するときは注意が必要です。
以上がJava ジェネリックスはどのように行うのですか? super` ワイルドカードの機能とその制限は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。