如何调试“类型X中的方法或匹配器不适用于参数”的错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调试“类型X中的方法或匹配器不适用于参数”的错误?相关的知识,希望对你有一定的参考价值。

public class JUnitTest {
    @Autowired ApplicationContext context;

    static Set<JUnitTest> testObjects = new HashSet<JUnitTest>();
    static ApplicationContext contextObject = null;

    @Test public void test3() {
        assertThat(testObjects, not(hasItem(this)));
        testObjects.add(this);

        assertThat(contextObject, either(is(nullValue())).or(is(this.context))); //error
        contextObject = this.context;
    }
}

错误信息:

The method or(Matcher< ? super Object >) in the type
CombinableMatcher.CombinableEitherMatcher< Object> is not applicable for the
arguments (Matcher< ApplicationContext>)

如何修复此代码?

答案

您可以将类型指定为nullValue的参数,以使其返回适当的类型。

assertThat(contextObject, either(is(nullValue(ApplicationContext.class))).or(is(this.context)));

以上是关于如何调试“类型X中的方法或匹配器不适用于参数”的错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何消去linux的错去提示音?

使用kdbg或nemiver调试ROS

python编程快速上手之第10章实践项目参考答案

在python中的错误点使用哔声

错误异常与日期和时间

codeigniter 的问题,遇到 404 错误,不知道怎么调试