ホームページ > Java > &#&チュートリアル > Java ジェネリックス: ` はどうなるのでしょうか? super` キーワード?

Java ジェネリックス: ` はどうなるのでしょうか? super` キーワード?

Susan Sarandon
リリース: 2024-11-28 01:37:14
オリジナル
210 人が閲覧しました

Java Generics: What's the Deal with the `? super` Keyword?

Java ジェネリック: 'Super' キーワードの謎を解明する

ジェネリックに関するさまざまなリソースを調べても、依然として 'スーパー」キーワード。これらの疑問を解消するために、Java ジェネリックスでの「スーパー」の使用の複雑さを掘り下げてみましょう。

1. 』の矛盾を紐解く? super Number'

コレクションを 'List' であるため、Number の親であるオブジェクトを保持できると考えることができます。ただし、逆のことが起こります。整数は追加できますが、オブジェクトは追加できません。

その理由はキャプチャ変換にあります。 'リスト

2. 「List」による動作の解読および 'test()'

'test(sList);' をコンパイルしています'List' のため失敗します「List」ではキャプチャ変換できません。スーパーナンバー>」。 String は Object のスーパータイプですが、Object は Number の拡張ではありません。これはキャプチャと変換のルールに違反します。

要約すると、「?」 super T' は、コレクションが型 T のオブジェクト、または拡張互換性のあるそのスーパークラスのいずれかを保持できることを示します。ただし、これにはすべてのスーパータイプが含まれるわけではなく、指定されたタイプを拡張するスーパータイプのみが含まれます。

3.なぜ「」なのかは禁止されています

Java では「」は許可されていませんそれは曖昧な状況を引き起こすからです。たとえば、「リスト」両方の「List」をキャプチャする可能性がありますおよび「リスト<オブジェクト>」 (Object はすべてのオブジェクトのスーパータイプであるため)。これはジェネリック型の安全性に違反します。

以上がJava ジェネリックス: ` はどうなるのでしょうか? super` キーワード?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート