Java は、コードの型の安全性と柔軟性を強化するジェネリックを提供します。これらのジェネリックス内では、ワイルドカードを使用して未知の型または無制限の型を表す多用途の方法が提供されます。この記事では、ジェネリック型パラメーター内の疑問符 (?) の意味を詳しく説明します。
この例では、「extends」が付いた疑問符は、境界付きワイルドカードを示します。これは、ジェネリック型が、指定されたスーパータイプ (この場合は「HasWord」) を拡張するクラスまたはインターフェイスを表すことを意味します。したがって、式「? extends HasWord」は、「HasWord」自体、または null を含むそのサブクラスのいずれかの型を意味します。
技術的には、この境界付きワイルドカードにより、型パラメーターが期待される型と互換性があることが保証されます。これにより、指定したタイプのサブクラスのオブジェクトを渡すことができます。たとえば、提供されたコードでは、「wordList」変数を「List
「? extends HasWord」と「? super HasWord」の違いに注意することが重要です。前者はメソッドがコレクションから要素を生成する場合に適しており、後者はコレクションに要素を追加するメソッドに適しています。 PECS (プロデューサー-拡張、コンシューマー-スーパー) として知られるこの原則は、型の安全性を維持し、意図しない代入を防ぐのに役立ちます。
以上がJava ジェネリックスのワイルドカード タイプ パラメータにおける「?」は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。