首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssertThrows in JUNIT5

AssertThrows in JUNIT5
EN

Stack Overflow用户
提问于 2020-02-09 14:06:55
回答 1查看 254关注 0票数 1

我正在努力学习assertThrowsjunit5,它以Executable作为第二arg,其中有一个void execute()方法。但是,在下面的示例中,在相同的示例中,我们将传递给它一个LAMBDA,它将返回带double divide(int a , int b)方法的double。如果下面的lambda没有与executeExcecutable方法相同的签名,那么如何传递它呢?它应该给compile error权利吗?

代码语言:javascript
复制
assertThrows(ArithmeticException.class,() -> m.divide(1, 0),"Failed");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-09 14:20:34

代码语言:javascript
复制
() -> m.divide(1, 0)

被有效地对待

代码语言:javascript
复制
new Executable() {
  @Override public void execute() {
    m.divide(1, 0);
  }
}

可以使用单个抽象方法将lambda视为任何接口/类的实例。

Lambdas始终是多个表达式,这意味着它们的确切类型取决于使用它们的上下文。

不存在兼容性问题。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60137455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档