ホームページ >Java >&#&チュートリアル >Java のコレクション `remove()` メソッドがジェネリックではないのはなぜですか?
Java コレクションの Remove メソッドはジェネリックではないのはなぜですか?
Java の Collection インターフェイスでは、remove(Object o) メソッドはジェネリックではありません。これにより、特に Collection
理由を理解する
コレクションにオブジェクトを追加する add メソッドとは異なり、remove メソッドは以下に基づいてオブジェクトを削除します。平等。これには、コレクションと同じ特定の型である場合もそうでない場合もある、異なる型のオブジェクトを処理する必要があります。
remove(o) の仕様では、(o==null ? e==null : o.equals(e)) は true です。この条件により、異なるタイプのオブジェクトを比較し、それらが等しいとみなされる場合に削除することができます。
例: 異なるタイプのマップ
マップを考慮する 一般的な制限 remove メソッドの場合は汎用的で引数の型が制限されていたため、この種の柔軟性は考慮されませんでした。コレクションと同じ特定の型のオブジェクトのみが削除されるため、依然として等しい、異なる型のオブジェクトを削除することは不可能になります。 結論 一方、ジェネリックは次の機能を提供します。強力な型安全性、remove メソッドの非ジェネリックな性質により、等価性に基づいて広範囲のオブジェクト処理が可能になります。この柔軟性は、特定のクラスではなくコンテンツに基づいて削除する必要があるさまざまなオブジェクト タイプがコレクションに含まれているシナリオで必要です。 以上がJava のコレクション `remove()` メソッドがジェネリックではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。