2017-03-17 2 views
0

私はまだJava 8でラムダ概念を消化しています。今では、私のサービスに2つの他のサービスオブジェクトを持つメソッド参照のリストを作成する必要があります。これには、リストには、this.class、サービス2またはservice3の新しいインスタンスが作成されないことが非常に重要である異なるターゲットオブジェクトでメソッド参照のリストを作成しますか?

0 -> this.method1, 
1 -> service2.method2, 
2 -> service3.method3, 

を持っている必要があり

Person person = new Person(); 
this.method1(person); 
service2.method2(person); 
service3.method3(person); 

を発生する必要があるものです。それを達成するための最良の方法は不明です。助けてもらえますか?

答えて

4

あなただけ

List<Consumer<Person>> list = Arrays.asList(
    this::method1, service2::method2, service3::method3); 
for (Consumer<Person> action : list) { 
    action.accept(person); 
} 
+0

多くの感謝をしたいように見えます。それは素晴らしい作品です! – gigi2

+0

私は、私のservice2とservice3がMockito.mockによって作成されている場合、ユニットのテストでフォローアップの質問をしていますが、リストのservice2.method2がmocked service2のmethod2を呼び出すと思いますか?私は「欲しいけど、呼び出されていない」と続けている。 – gigi2

+0

はい、そこには特別なものはないはずです。 –

関連する問題