Java hamcrest匹配器的语法
在我们的一个项目中,我偶然发现了以下代码行(它使用hamcrest matchers 1.3):Java hamcrest匹配器的语法,java,eclipse,generics,junit,hamcrest,Java,Eclipse,Generics,Junit,Hamcrest,在我们的一个项目中,我偶然发现了以下代码行(它使用hamcrest matchers 1.3): assertThat(someReport.getSomeException(),Matchers.notNullValue()) 两个问题: 谁能给我解释一下这个语法吗?我从未见过在这种情况下的用法 Eclipse将该行的后半部分突出显示为en error:类型匹配器的notNullValue()方法不是泛型的;无法使用参数对其进行参数化。但是,在命令行上使用maven,项目构建不会出现问题。那
assertThat(someReport.getSomeException(),Matchers.notNullValue())
两个问题:
类型匹配器的notNullValue()方法不是泛型的;无法使用参数对其进行参数化
。但是,在命令行上使用maven,项目构建不会出现问题。那么为什么会有错误呢MyClass.myMethod()
。在许多情况下,类型推断允许不包括
。例如,上面的工作:String myVal=MyClass.myMethod()
Matchers
的javadoc具有notNullValue
公共静态匹配器notNullValue()
,因此不适合指定泛型变量。如果它正在编译,我认为这是因为编译器忽略了它
assertThat(someReport.getSomeException(), Matchers.<SomeException>notNullValue())