dea*_*mon 8 java lambda java-8 assertj
我已经定义了一个静态assertThat方法来扩展AssertJ.此方法接受类型的lambda表达式:
@FunctionalInterface
public interface Action {
void execute() throws Exception;
}
Run Code Online (Sandbox Code Playgroud)
签名如下所示:
public static ExceptionAssert assertThat(Action action)
Run Code Online (Sandbox Code Playgroud)
我想将此方法与静态导入一起使用.但它含糊不清.编译器不知道是否应该使用assertThat(Iterable)或我的方法.我不明白void方法如何与返回的方法冲突Iterator<T>.
知道如何解决这个冲突(没有在前面写过类名assertThat)?
Dmi*_*urg 15
您应该明确指定lambda的类型:
assertThat((Action)() -> {
...
});
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用其他名称,例如, assertNoException