【发布时间】:2014-04-15 08:45:44
【问题描述】:
有没有办法使用静态导入的方法作为参数调用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);
【问题讨论】:
-
您可以使用
Consumer<T> assertNotNull = Assert::assertNotNull并在任何地方重复使用它。
标签: java foreach static-methods java-8 static-import