下面的代码给我一个编译错误
.filter(Book::getPrice >200)
Run Code Online (Sandbox Code Playgroud)
编译错误是:此表达式的目标类型应该是功能接口
public void skipData() {
List<Book> bookList = books.stream()
**.filter(Book::getPrice >200)**
.skip(5)
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
我的Book.java类如下所示:
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
}
Run Code Online (Sandbox Code Playgroud)
我试图在Eclipse(火星)和cmd线上运行它并看到同样的问题.
但如果我改变.filter(b -> b.getPrice() >200)它的工作原理.
我不清楚为什么方法参考在我的情况下不起作用.