有没有一种方法可以使用静态导入的方法作为参数调用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));