Map インターフェースを実装したいのですが、K と V をインターフェースにバインドします)。ただし、Java コレクション API、具体的には MAP インターフェースでは、ジェネリック型 K および V の代わりに Object を使用して、メソッド パラメーターを最小限に制限していpublic boolean containsValue(Object value)
ますpublic boolean containsValue(V value)
。そのような場合、コンパイラの型安全性に頼ることはできません。
明確にするために、次のようなものを実装したいと思います。
class MyMap< K , V extends ValueInterface> implements Map<K,V>
ただし、次のようなメソッドを実装する必要があります。
@Override
public boolean containsValue(Object value) {
// What to do here?
ValueInterface v = (ValueInterface ) v;
v.getWhatIWant().andDoThing();
// Follow on...
}
この状況でどのオプションやベスト プラクティスを使用できますか?