我不幸地处理了一个用以下内容定义的接口
public Map, ?> getMap(String key);
我正在尝试编写使用此接口的单元测试.
Map pageMaps = new HashMap
pageMaps.put(EmptyResultsHandler.PAGEIDENT,"boogie");
pageMaps.put(EmptyResultsHandler.BROWSEPARENTNODEID, "Chompie");
Map,?> stupid = (Map, ?>)pageMaps;
EasyMock.expect(config.getMap("sillyMap")).andReturn(stupid);
并且编译器是borking.
The method andReturn(Map) in the type IExpectationSetters> is not applicable for the arguments (Map)
如果我尝试直接使用pageMaps,它会告诉我:
The method andReturn(Map) in the type IExpectationSetters> is not applicable for the arguments (Map)
如果我将pageMaps设为Map,我就不能将字符串放在其中.
The method put(capture#3-of ?, capture#4-of ?) in the type Map is not applicable for the arguments (String, String)
我已经看到一些客户端代码执行丑陋的未经检查的转换,例如
@SuppressWarnings("unchecked")
final Map emptySearchResultsPageMaps = (Map) conf.getMap("emptySearchResultsPage");
如何将数据导入Map或转换我的Map< String,String>映射 ?