有没有一种方法可以用静态导入的方法作为参数来调用Iterable#forEach
?我通过键入函数的完全限定名称而不导入它来实现这一点:
Arrays.asList(line).forEach(org.junit.Assert::assertNotNull);
另一种变体是:
import org.junit.Assert;
...
Arrays.asList(line).forEach(Assert::assertNotNull);
这样做的原因是,我想在单元测试中line
中的每个元素都assertNotNull
,但我不喜欢使用完全限定的名称。如果只使用,那就太好了
import static org.junit.Assert.assertNotNull;
...
Arrays.asList(line).forEach(assertNotNull);
否。要做到这一点,您必须恢复到经典的lambda表示法:
Arrays.asList(line).forEach(e-> assertNotNull(e));