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

いいえ。これを行うには、従来のラムダ表記に戻す必要があります。

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