Hamcrest Matchers 包含匹配器列表

2024-03-16

我正在尝试使用org.hamcrest.Matchers.contains(java.util.List>) http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/Matchers.html#contains(java.util.List),但编译器告诉我它无法解析该方法。

我什至尝试过 Hamcrest 给出的例子here http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/Matchers.html#contains(java.util.List),但我得到相同的编译错误:

assertThat(Arrays.asList("foo", "bar"), contains(Arrays.asList(equalTo("foo"), equalTo("bar"))));

Error:(13, 9) java: no suitable method found for assertThat(java.util.List<java.lang.String>,org.hamcrest.Matcher<java.lang.Iterable<? extends java.util.List<org.hamcrest.Matcher<java.lang.String>>>>)
method org.hamcrest.MatcherAssert.<T>assertThat(T,org.hamcrest.Matcher<? super T>) is not applicable
  (actual argument org.hamcrest.Matcher<java.lang.Iterable<? extends java.util.List<org.hamcrest.Matcher<java.lang.String>>>> cannot be converted to org.hamcrest.Matcher<? super java.util.List<java.lang.String>> by method invocation conversion)
method org.hamcrest.MatcherAssert.<T>assertThat(java.lang.String,T,org.hamcrest.Matcher<? super T>) is not applicable
  (cannot instantiate from arguments because actual and formal argument lists differ in length)
method org.hamcrest.MatcherAssert.assertThat(java.lang.String,boolean) is not applicable
  (actual argument java.util.List<java.lang.String> cannot be converted to java.lang.String by method invocation conversion)

我尝试将第二个参数转换为 Matcher超级列表>

assertThat(Arrays.asList("foo", "bar"), (Matcher<? super List<String>>)contains(Arrays.asList(equalTo("foo"), equalTo("bar"))));

但随后我收到另一个编译错误:

Error:(16, 88) java: inconvertible types  
required: org.hamcrest.Matcher<? super java.util.List<java.lang.String>> 
found:    org.hamcrest.Matcher<java.lang.Iterable<? extends java.util.List<org.hamcrest.Matcher<java.lang.String>>>>

有没有办法正确使用这个方法?


问题是Arrays.asList(equalTo("foo"), equalTo("bar"));会给你类型List<Matcher<String>>,但你真的想要List<Matcher<? super String>>。您必须明确指定类型:

assertThat(str, 
    contains(Arrays.<Matcher<? super String>>asList(
        equalTo("foo"), 
        equalTo("bar"))));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hamcrest Matchers 包含匹配器列表 的相关文章

随机推荐

  • 如何在 Django 中将当前日期设置为输入类型 = 日期形式

    我一直在尝试使表单中的日期字段在呈现时显示当前日期 但我未能找到解决这个问题的正确方法 请找到下面的代码 HTML 文件
  • 捆绑程序:不支持在使​​用系统 gem 时使用自定义路径

    我在用GitLab CI CD建立我的Rails应用 我注意到我的构建失败了Using a custom path while using system gems is unsupported错误 之前工作得很好 尝试检查较新的更新版本 但
  • 在 Google Colab 上安装 Spark 时出错

    我在 Google Colab 上安装 Spark 时遇到错误 它说 tar spark 2 2 1 bin hadoop2 7 tgz 无法打开 没有这样的文件或目录tar 错误不可恢复 立即退出 这是我的步骤 apt get insta
  • 如何删除具有特定行号的数据(sqlite)

    我有一个表人员 姓名 地址 电话 我的表有 2000 多行 我想删除 1000 行 查询情况如何 我假设您想要删除 前 1000 行 因为 select 查询结果的未排序顺序没有排序参数 也没有条件 在这种情况下您做错了 但是 作为一项学术
  • Google Mirror API 视频

    google glassmirror API 上的视频路线图是什么 API 是否允许将视频传输到设备或从设备传输视频 如 glass 演示视频所示http www youtube com watch v v1uyQZNg2vE http w
  • CMD 不在 Dockerfile 中的 ENTRYPOINT 之后运行

    所以我有一个 docker 文件 它可以执行以下操作 ENV ENV ENV ENV SERVICE NAME SERVICE NAME USER app ENV HOME home app COPY target home app tar
  • Xcode 4 中的活动构建配置在哪里设置

    我的项目中有 3 个配置 Debug Distribution AdHoc 和 Distribution AppStore 在 Xcode 3 中 我们有一个列表可以在构建和运行之前选择设备 版本 配置和目标 现在 对于 Xcode 4 我
  • 使用正则表达式删除字符之前或之后的空格

    我是正则表达式的新手 我想找到一个很好的解决方案来替换之前或之后的空格 我的子字符串中的 char 我有类似的字符串 Path01 Some folder folder 2 我检查了正则表达式 s s 但这对我来说是不正确的 我必须输入输出
  • 如何在 Tensorflow 2.0 中制作不规则批处理?

    我正在尝试从由一维数值数据张量组成的 Tensorflow 数据集创建数据输入管道 我想创建一批不规则的张量 我不想填充数据 例如 如果我的数据采用以下形式 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 我希望我的数据集由以下
  • JList 的自定义组件而不仅仅是字符串

    我一直在尝试更新我的 Java 知识 并且一直在构建一个小型 GUI 程序 但遇到了一些问题 基本上 我有一个JList我目前正在使用来自我的一个类的对象中的字符串填充该类 该类实现了AbstractListModel我们可以称之为我的It
  • 在 Windows 中将多个文件的前缀重命名或删除为每个文件的编号

    我正在尝试更改当前文件夹中的所有文件名 并且我正在尝试通过删除文件前缀 每个文件都有一个公共前缀 或将其名称更改为其计数 如果有 5 个文件 则文件名将是 1 txt 2 txt 3 txt 4 txt 5 txt 现在我在cmd中找到了r
  • 如何使用jquery一键选中复选框(3)

    这里我有一堆复选框 比如说 如果我单击任何复选框 我也希望选中接下来的两个复选框 即在两个复选框旁边 table border 1 cellspacing 0 width 450 tr td td tr table
  • 无法通过 group_send 向 Django 通道发送消息

    我想使用 Django Channels 通过通道发送消息 我就是这样做的 我首先创建一个消费者 我能够回显收到的消息 但是 无法将消息发送到特定频道 组 class Consumer AsyncJsonWebsocketConsumer
  • 获取Android中虚拟键盘的高度

    如何获取Android中虚拟键盘的高度 是否可以 我尝试从主窗口获取它 但它给了我应用程序的完整高度 但我想得到键盘的高度 您无法获取键盘高度 但可以获取 View 的高度 这是您真正想要的 并且您将获得提供给当前视图的 onLayout
  • PL/SQL 在整个数据库中搜索字符串

    这不仅仅是一个问题 它还是一个信息共享帖子 我今天遇到一个情况我需要在应用程序的整个数据库中寻找一个刺痛 但不知道它属于哪个表 列 下面是我编写并用于帮助我提出建议的 PL SQL 块 希望它能帮助其他有类似需求的人 Declare i N
  • 如何远程访问Spring-boot JMX

    我知道 spring 自动公开 JMX beans 我能够使用 VisualVM 在本地访问它 但是在产品上我如何使用它的 JMX beans 远程连接到应用程序 是否有默认端口或者我应该另外定义什么 谢谢 射线 默认情况下 JMX 可在本
  • -m32 选项不适用于 gcc,但适用于 g++

    我试图在 x86 64 ubuntu 12 04 机器上编译 32 位目标的应用程序 我使用安装了所需的包 sudo apt get install gcc multilib g multilib libc6 i386 libc6 dev
  • 错误:安装 ruby​​-debug-ide

    事实上 我是 ruby on Rails 开发的新手 并不是说我无法在 aptana studio 3 上安装 gem install ruby debug ide gem install ruby debug ide Temporaril
  • 声纳:“关闭这个PreparedStatement”

    Why is 声纳Qube http docs sonarqube org 如果我在finally块中关闭它 Jenkins的插件会抱怨打开的语句 我需要在单独的函数中验证数据库连接 final String PING SELECT 1 f
  • Hamcrest Matchers 包含匹配器列表

    我正在尝试使用org hamcrest Matchers contains java util List gt http hamcrest org JavaHamcrest javadoc 1 3 org hamcrest Matchers