はじめに:
Java ジェネリックの 'super' キーワードを理解する複雑な作業になる可能性があります。この記事は、具体的な例を通じてそのニュアンスを探り、一般的な誤解に対処することで、この概念に光を当てることを目的としています。
「スーパー」キーワードを使用した境界付きジェネリックス:
境界付きワイルドカードリスト
オブジェクトと整数の予期しない動作:
たとえば、Integer(0) を List に追加できると述べました。 super Number> ですが、Object() はできません。この動作は、境界付きワイルドカードのキャプチャ変換ルールから発生します。リスト
リストに文字列を追加する理由
String は Number のスーパークラスである Object を拡張しますが、String を List に追加します
なぜ ではないのか。 Java ジェネリックで許可されますか?
の欠如Java ジェネリックスの構造は、意味をなさないという事実から生じています。ジェネリック型がそのバインドされたスーパータイプを受け入れることができる場合、特定の型パラメーターは必要ありません。
結論:
Java ジェネリックスの 'super' キーワードについてその影響と PECS ガイドラインへの準拠について慎重に検討する必要があります。これらの概念を理解することで、境界付きワイルドカードを効果的に利用して API の柔軟性を高めることができます。
以上がJava ジェネリックス: `super` キーワードは実際に境界付きワイルドカードでどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。