2017-02-16 5 views
0

申し訳ありませんが、イムを地図を受け入れ、私は以下のような一般的なクラスを作成することができます。のJava - クラスにパラメータとしてジェネリック医薬品に精通していない

<String, User> 
<String, String> 
<Set<UserGroup>, User> 

public class InfoField <T, U> { 

} 

上記のクラスは次のような値を受け入れることができます

しかし、値としてマップオブジェクトを受け入れるクラスを持つことはできますか?

<Map<String, String>, String> 

public class InfoFieldMap <Map<T,U>, K> { 

} 

答えて

1

作品のようなものあなたは、元はそれを持っていたとして:

class InfoField <T, U> { 
    public static void main(String[] args) 
    { 
     //Example InfoField declaration 
     InfoField<Map<String,String>, String> test; 
    } 
} 
1

は、私はあなたで宣言されているように、あなたが他の地図キーとして地図を持つことができることを確認していませんInfoFieldMapクラス。この単純な例を参照してください。InfoFieldMapクラスのmap-in-java-with-example

あなたdeclationは次のようになります。

public class InfoFieldMap <K, Map<K,V>> { 

} 

地図VキーフィールドがのですK地図Vは、マップまたは別のコレクションにすることができます。

+0

A地図のようなものの技術的な観点から、少なくとも、別のマップ内のキーとして使用することができますを行うにしましたと信じています。たとえば、java.util.HashMapはそのキーをハッシュコードで区別します。したがって、hashCodeメソッドを正しく実装するものはすべて動作します。しかし、それが有用かどうかという疑問が残っています。単純な1:1マッピングがあなたの望むものではない場合があります。このような状況では、複数値のマップを使用する方法がありますが、 –

0

は、私はあなたがこの

public class InfoFieldMap < Z extends Map<K,V>, K, V> 
関連する問題