我有一个类,TestMap
只有main
用于测试的静态方法(包括一个)Maps
。类中有一个方法,例如,接受一个map,key和value的类型分别用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