2017-11-07 9 views
0

Java8ラムダ機能 - 追加する新しいパラメータ、私は次のコードしている

categoryList = Prices.stream() 
       .filter(price -> price.getPrice() != null) 
       .map(this::createCategory) 
       .filter(Objects::nonNull) 
       .collect(Collectors.toList()); 

などの方法が見えます:私は、メソッドcreateCategoryに新しいパラメータを追加したい

private Category createCategory(PriceCategory price) { 
     Category category = new Category(); 
     category.setId(price.getId()); 
     return category; 
    } 

からcreateCategory(PriceCategory price, response)ようしかし、この新しいパラメータをlamda関数に設定することについてはわかりません。誰もがこれで助けてください

+0

メソッド参照を使用しています。ラムダ式に変更するだけで問題はなくなります(ヒント:ラムダ式は、前の 'filter'ステップで使用しているものです)。 – Holger

+0

可能ですが、 'response'の値がどこから来るかを最初に定義する必要があります。 –

答えて

3

単にラムダを作成することはできませんか?

.map(x -> createCategory(x, response)) 
+0

「応答」値がクロージャで定義されている場合のみです。 –

関連する問題