使用org.hamcrest:hamcrest:2.2时导入Matcher的最佳实践是什么
Hamcrest Matcher导入最佳实践
针对你使用org.hamcrest:hamcrest:2.2全量依赖的场景,行业通用最佳实践选择优先级如下:
- 首选:
org.hamcrest.Matchers
这是Hamcrest全量Matcher的统一入口,包含了所有核心、扩展场景的Matcher实现,完全覆盖CoreMatchers的所有能力,还支持集合、字符串、数值、自定义类型等各类匹配逻辑。统一从这个类导入Matcher可以保持项目导入规则的一致性,后续新增其他Matcher时也不需要额外引入新的导入类,维护成本最低。
绝大多数项目会直接使用通配静态导入import static org.hamcrest.Matchers.*;,一劳永逸不需要为每个Matcher单独加导入,IDE可以正常完成所有Matcher的代码补全。 - 次选:
org.hamcrest.CoreMatchers
这个类只包含最基础的核心Matcher子集,是早期Hamcrest拆分为hamcrest-core和hamcrest-library多个独立Jar包时的核心入口,仅适合你只依赖核心包、不需要扩展Matcher的特殊场景。你已经引入了官方推荐的全量依赖,没有必要局限在这个子集里。 - 不推荐:
org.hamcrest.core.IsNull这类单个Matcher实现类
每个Matcher单独导入实现类会导致导入列表冗余冗长,维护性极差,仅在你有严格的最小化导入要求的极端场景下使用,常规项目完全不建议选择。
内容的提问来源于stack exchange,提问作者hughjdavey
相关产品推荐
相关产品推荐

