Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 lambda链接谓词赢得';行不通_Java_Java 8_Predicate - Fatal编程技术网

Java 8 lambda链接谓词赢得';行不通

Java 8 lambda链接谓词赢得';行不通,java,java-8,predicate,Java,Java 8,Predicate,我有一份水果清单: final List<Fruit> fruitList = Arrays.asList(new Fruit(1, "AA"), new Fruit(2, "DD"), new Fruit(3, "CC"), new Fruit(4, "BB")); 当我将谓词与另一个谓词链接时,它将不起作用 final Predicate<Fruit> predicate = s -> s.getName().equals("AA");

我有一份水果清单:

final List<Fruit> fruitList = Arrays.asList(new Fruit(1, "AA"), new Fruit(2, "DD"),
            new Fruit(3, "CC"), new Fruit(4, "BB"));
当我将谓词与另一个谓词链接时,它将不起作用

final Predicate<Fruit> predicate = s -> s.getName().equals("AA");
predicate.and(s -> s.getId() == 10);
System.out.println(fruitList.stream().anyMatch(predicate)); -> output true
final Predicate=s->s.getName().equals(“AA”);
谓词和(s->s.getId()==10);
System.out.println(水果列表.stream().anyMatch(谓词));->输出真值
它是如何可能的?

来自谓词的:

和(谓词<?super T>其他)

返回一个组合谓词,该谓词 表示此谓词和的短路逻辑AND 另一个


结果谓词是返回的,并且未通过引用修改,因此您需要分配它,正如@zron在注释(
predicate=predicate.and(…)
)中所述。

尝试
predicate=predicate.and(…)
-
和()
返回一个新的
谓词。
System.out.println(fruitList.stream().anyMatch(predicate)); -> output false
final Predicate<Fruit> predicate = s -> s.getName().equals("AA");
predicate.and(s -> s.getId() == 10);
System.out.println(fruitList.stream().anyMatch(predicate)); -> output true