Hamcrest的所有东西()都没有编译

时间:2012-12-12 06:05:06

标签: generics compiler-errors hamcrest

我在这里错过了什么吗?

@Test
public void testAnything(){
    Random random = new Random();
    assertThat(random.nextInt(), is(equalTo(anything())));
}

这不编译。 Eclipse抱怨“类型MatcherAssert中的方法assertThat(T,Matcher)不适用于参数(int,Matcher>)”

有什么东西我错过了使用任何东西()?我过去使用过其他的Hamcrest方法......那么这有什么不同呢?

1 个答案:

答案 0 :(得分:2)

这不是equalTo的工作方式。它在内部调用Object#equals(Object),必须通过anything()。这没有意义。只需省略它就可以了:

Random random = new Random();
assertThat(random.nextInt(), is(anything()));