2012-03-17 5 views
0

キーがインタフェースAで、値がインタフェースBであるハッシュマップを作成します。次に、AとBを実装するクラスで初期化します。java genericsで可能ですか?Hashmap generic

私は

a1が実装
hashmap<<? implements A>, <? implements B>> _map; 
_map.put(a1, b1); 

のようなものを持ちたい、です。そしてB1は本来の意図は、私はA1に見上げるとB1のインスタンスを返すことができるように、工場を作りたいということであるB.

を実装しています。

答えて

0

はい、それは可能だが、書くことが十分であろう:

Map<A, B> _map = HashMap<A, B>(); 
0

これはあなたが探しているものかもしれ:

HashMap<A,B> map = new HashMap<A,B>(); 

map.put(a1,b1); 
3
Map<A, B> map = new HashMap<A, B>(); 
map.put(a1, b1); 
+0

これらの答えが似ていますが、私を残して私はそれが最高だと思うので私の鉱山。構文的に正しいです。オブジェクトのインターフェース( 'Map')を通した作業は、(' HashMap'の)実装の依存関係を持つ方が望ましいです。そしてそれはJavaの命名規則(メンバ変数名の前に_を付けます)に従います。 – erickson

+0

Javaでは、フィールドの先頭に '_'を追加するという規約に従っていますか?私はあなたがローカル変数について話していないと仮定します。私はそれが悪い考えを言っているわけではありません。ただ、それが大会であれば、それは非常に貧弱です。私はこれを行うコアライブラリで3つのクラスを見つけることができます。 ;) –

+0

おっと、 "* *接頭辞なし!" – erickson