テストに使用されるTestMap
静的メソッド(を含む)のみを持つクラス、があります。例として、クラスにはマップを受け入れるメソッドがあり、キーと値のタイプは、以下に示すように、それぞれとで示されます。main
Maps
KeyType
ValueType
public static <KeyType,ValueType> void printMap( String msg, Map<KeyType,ValueType> m )
{
System.out.println( msg + ":" );
Set<Map.Entry<KeyType,ValueType>> entries = m.entrySet( );
for( Map.Entry<KeyType,ValueType> thisPair : entries )
{
System.out.print( thisPair.getKey( ) + ": " );
System.out.println( thisPair.getValue( ) );
}
}
私の質問は、静的メソッドだけで構成されているのではなく、インスタンス化できるようにこのクラスを書き直したい場合、クラス内でどのように機能するマップを定義できMap<KeyType, ValueType>
ますか?
以下のように地図を定義しようとしましたが、うまくいかないようです。
private Map<KeyType, ValueType> internalMap;
何か案は?
最初のコメントに従って、クラス定義に追加しようとしました。次に、次のようにコンストラクターをセットアップしました。
public class TestMap<KeyType, ValueType>
{
private Map<KeyType, ValueType> internalMap;
/*
* Constructor which accepts a generic Map for testing
*/
public <KeyType,ValueType> TestMap(Map<KeyType, ValueType> m)
{
this.internalMap = m;
}
}
ただし、コンストラクターの割り当ては、タイプの不一致であり、java.util.Mapからjava.util.Mapに変換できないというエラーをスローしています。