1

有没有办法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);
4

1 回答 1

2

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

Arrays.asList(line).forEach(e-> assertNotNull(e));
于 2014-04-15T09:00:22.317 回答