我在调试代码时遇到了这个问题。 Predicate
与Object不能正确匹配字符串,但是当我循环执行equals
时,它可以工作。
有什么理由吗?
List testlist = Arrays.asList("asd", 1, 2 );
Predicate<Object> p1 = s -> s.equals("asd");
for (Object obj : testlist) {
System.out.println(obj.equals("asd"));
}
System.out.println(testlist.stream().allMatch(p1));
输出:
true
false
false
false