1. ホーム
  2. java

[解決済み] Java Collectionsのremoveメソッドはなぜgenericではないのですか?

2022-04-29 04:30:29

質問

なぜ、そうしないのか? Collection.remove(Object o) ジェネリック?

のようです。 Collection<E> かもしれない boolean remove(E o);

そして、誤って(例えば)削除しようとしたときに Set<String> からの個々の文字列ではなく Collection<String> の場合、後でデバッグの問題ではなく、コンパイル時のエラーになります。

どのように解決するのですか?

Josh BlochとBill Pughは、この問題について次のように言及しています。 Java パズラーズIV:The ファントムリファレンスメナス、アタックオブザクローン、リベンジオブザクローン シフト .

Josh Blochは(6:41)、getメソッドの生成に挑戦したそうです。 のMap、removeメソッド、その他のメソッドがありますが、単にうまくいきませんでした"。

には、生成できない合理的なプログラムがあまりにも多くあります。 コレクションの一般的な型しかパラメータとして認めない。 彼の示した例は、コレクションを構成する要素である ListNumber sと ListLong s.