ci-dessous morceau de code me donne une erreur de compilation àLe type cible de cette expression doit être une interface fonctionnelle
.filter(Book::getPrice >200)
erreur de compilation est: Le type cible de cette expression devrait être une interface fonctionnelle
public void skipData() {
List<Book> bookList = books.stream()
**.filter(Book::getPrice >200)**
.skip(5)
.collect(Collectors.toList());
}
classe Mon Book.java se présente comme suit:
public final class Book {
private String title;
private String genre;
private double price;
public Book(String title, String genre, double price) {
this.title = title;
this.genre = genre;
this.price = price;
}
public double getPrice() {
return price;
}
//other getters
}
J'ai essayé d'exécuter ceci sur Eclipse (Mars) et aussi sur la ligne cmd & vu le même problème. Mais si je le change en .filter(b -> b.getPrice() >200)
cela fonctionne.
Il n'est pas clair pour moi pourquoi la référence de méthode ne fonctionne pas dans mon cas.
Quelle est la déclaration de la variable 'books'? –