Java 如何使用matchers来收集Hamcrest?
输入:Java 如何使用matchers来收集Hamcrest?,java,generics,junit,matcher,hamcrest,Java,Generics,Junit,Matcher,Hamcrest,输入: 使用MyElement而不使用equals方法的集合 一个org.hamcrest.TypeSafeMatcher实现,它通过某个字段匹配元素 目标是使以下语句可编译: Collection<MyElement> elements = ... Collection<TypeSafeMatchert> matchers = ... assertThat(elements, Matchers.contains(matchers); //<error here
Collection<MyElement> elements = ...
Collection<TypeSafeMatchert> matchers = ...
assertThat(elements, Matchers.contains(matchers); //<error here
集合元素=。。。
集合匹配器=。。。
assertThat(elements,Matchers.contains(Matchers);//对匹配器使用列表而不是集合,或者将其转换为数组
Hamcrest有以下包含的方法:
public static <E> org.hamcrest.Matcher<java.lang.Iterable<? extends E>> contains(org.hamcrest.Matcher<? super E>... itemMatchers)
public static <E> org.hamcrest.Matcher<java.lang.Iterable<? extends E>> contains(E... items)
public static <E> org.hamcrest.Matcher<java.lang.Iterable<? extends E>> contains(org.hamcrest.Matcher<? super E> itemMatcher)
public static <E> org.hamcrest.Matcher<java.lang.Iterable<? extends E>> contains(java.util.List<org.hamcrest.Matcher<? super E>> itemMatchers)
public static org.hamcrest.Matcher您需要定义一个
List<Matcher<? super MyElement>> matchers = ...;
列出非常接近的可能重复项,但使用use Matcher而不是elements时没有答案。:(请尝试指定类型;如下所示: