Java ジェネリック: 'Super' キーワードの謎を解明する
ジェネリックに関するさまざまなリソースを調べても、依然として 'スーパー」キーワード。これらの疑問を解消するために、Java ジェネリックスでの「スーパー」の使用の複雑さを掘り下げてみましょう。
1. 』の矛盾を紐解く? super Number'
コレクションを 'List として宣言する場合super Number>' であるため、Number の親であるオブジェクトを保持できると考えることができます。ただし、逆のことが起こります。整数は追加できますが、オブジェクトは追加できません。
その理由はキャプチャ変換にあります。 'リスト
2. 「List
'test(sList);' をコンパイルしています'List
要約すると、「?」 super T' は、コレクションが型 T のオブジェクト、または拡張互換性のあるそのスーパークラスのいずれかを保持できることを示します。ただし、これにはすべてのスーパータイプが含まれるわけではなく、指定されたタイプを拡張するスーパータイプのみが含まれます。
3.なぜ「」なのかは禁止されています
Java では「」は許可されていませんそれは曖昧な状況を引き起こすからです。たとえば、「リスト」両方の「List
以上がJava ジェネリックス: ` はどうなるのでしょうか? super` キーワード?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。