2017-11-07 1 views
0

ich folgenden Code haben:Java8 Lamda-Funktion - das Hinzufügen neuer Parameter

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

Und das Verfahren wie folgt aussieht:

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

ich einen neuen Parameter an die Methode createCategory hinzufügen möchten - wie createCategory(PriceCategory price, response) Aber Ich habe keine Idee, diesen neuen Parameter auf die Lamda-Funktion zu setzen. Kann mir bitte jemand helfen

+0

Sie verwenden eine Methodenreferenz. Ändern Sie es einfach in einen Lambda-Ausdruck und das Problem verschwindet (Hinweis: ein Lambda-Ausdruck ist das, was Sie im vorhergehenden 'Filter'-Schritt verwenden). – Holger

+0

Möglich, aber Sie müssen zuerst definieren, wo die Werte der Antwort herkommen. –

Antwort

3

kann man nicht einfach ein Lambda erstellen?

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

Nur für den Fall, dass der Wert 'response' im Abschluss definiert ist. –

Verwandte Themen