当我运行以下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<T>, org.hamcrest.Matcher<? super T>) 方法org.junit.Assert.assertThat(java.lang.String, T, org.hamcrest.Matcher)不适用 (无法推断类型变量T (实际参数列表和形式参数列表长度不同)) 方法org.junit.Assert.assertThat(T, org.hamcrest.Matcher)不适用 (推断出的类型不符合上界(s) 推断出的类型: java.util.List<T> 上界(s): java.lang.Iterable<? extends java.lang.Object>,java.lang.Object)看起来泛型中的某些东西出了问题。是什么问题?