gpt4 book ai didi

java - 将内容放入 Map 或将 Map 转换为 Map

转载 作者:搜寻专家 更新时间:2023-11-01 02:28:38 25 4
gpt4 key购买 nike

我很不高兴地处理某人用以下定义的接口(interface)

public Map<?, ?> getMap(String key);

我正在尝试编写使用此接口(interface)的单元测试。

Map<String,String> pageMaps = new HashMap<String,String();
pageMaps.put(EmptyResultsHandler.PAGEIDENT,"boogie");
pageMaps.put(EmptyResultsHandler.BROWSEPARENTNODEID, "Chompie");
Map<?,?> stupid = (Map<?, ?>)pageMaps;
EasyMock.expect(config.getMap("sillyMap")).andReturn(stupid);

编译器很无聊。

The method andReturn(Map<capture#5-of ?,capture#6-of ?>) in the type IExpectationSetters<Map<capture#5-of ?,capture#6-of ?>> is not applicable for the arguments (Map<capture#7-of ?,capture#8-of ?>)

如果我尝试使用 pageMaps它直接告诉我:

The method andReturn(Map<capture#5-of ?,capture#6-of ?>) in the type IExpectationSetters<Map<capture#5-of ?,capture#6-of ?>> is not applicable for the arguments (Map<String,String>)

如果我做 pageMaps一个Map<?,?> ,我不能将字符串放入其中。

The method put(capture#3-of ?, capture#4-of ?) in the type Map<capture#3-of ?,capture#4-of ?> is not applicable for the arguments (String, String)

我见过一些执行丑陋的未经检查的转换的客户端代码,比如

@SuppressWarnings("unchecked")
final Map<String, String> emptySearchResultsPageMaps = (Map<String, String>) conf.getMap("emptySearchResultsPage");

如何将数据输入 Map<?,?> ,或转换我的 Map<String,String>Map<?,?>

最佳答案

  1. 你不可能写Map<String, String> map = getMap("abc");没有 Actor
  2. 问题更多地与 easymock 和 expect 返回/期望的类型有关和 andReturn方法,我不熟悉。你可以写

    Map<String, String> expected = new HashMap<String, String> ();
    Map<?, ?> actual = getMap("someKey");
    boolean ok = actual.equals(pageMaps);
    //or in a junit like syntax
    assertEquals(expected, actual);

不确定这是否可以与您的模拟内容混合使用。这可能会起作用:

EasyMock.expect((Map<String, String>) config.getMap("sillyMap")).andReturn(pageMaps);

另请注意,您不能向带有通配符的通用集合中添加任何内容。所以这个:

Map<?, ?> map = ...
map.put(a, b);

不会编译,除非ab为空。

关于java - 将内容放入 Map<?,?> 或将 Map<String,String> 转换为 Map<?,?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com