【发布时间】:2017-04-28 22:17:51
【问题描述】:
当我运行以下 jUnit 测试时:
@Test
public void test(){
List<Map<String,String>> data=new ArrayList<>();
Map<String,String> map=new HashMap<>();
map.put("x","y");
data.add(map);
assertThat(data, hasItem(hasKey("x")));
}
我明白了:
错误:(239, 9) java: 没有找到适合 assertThat(java.util.List>,org.hamcrest.Matcher>>) 的方法 方法 org.junit.Assert.assertThat(java.lang.String,T,org.hamcrest.Matcher) 不适用 (无法推断类型变量 T (实际参数列表和形式参数列表的长度不同)) 方法 org.junit.Assert.assertThat(T,org.hamcrest.Matcher) 不适用 (推断类型不符合上限) 推断:java.util.List> 上限:java.lang.Iterable>,java.lang.Object)看起来泛型中的某些东西正在崩溃。这是什么?
【问题讨论】: