有没有一种方法可以使用静态导入的方法作为参数调用Iterable#forEach?我通过输入该函数的完全限定名称而不导入它来使其工作:

Arrays.asList(line).forEach(org.junit.Assert::assertNotNull);


另一个变体是:

import org.junit.Assert;
...
Arrays.asList(line).forEach(Assert::assertNotNull);


这样做的原因是,我想在单元测试中对assertNotNull中的每个元素进行line,但是我不喜欢为该内容使用完全限定的名称。只是使用它会很好:

import static org.junit.Assert.assertNotNull;
...
Arrays.asList(line).forEach(assertNotNull);

最佳答案

否。您必须恢复为经典的lambda表示法才能做到这一点:

Arrays.asList(line).forEach(e-> assertNotNull(e));

08-07 03:47