以下两个代码:
第一个:
Predicate<Dish> p1 = t -> t.getCalories() > 100;
Predicate<Dish> p2 = t -> t.getCalories() < 1000;
menu.stream().filter(p1.and(p2));
第二个:
menu.stream().filter((t -> t.getCalories() > 100).and(t -> t.getCalories() < 1000));
第一个是好的并且成功编译。 但第二个导致了一个comiple错误:
The target type of this expression must be a functional interface
出了什么问题,我很困惑。