bipredicate的test方法是自定义布尔逻辑的执行入口,仅执行用户提供的判断规则,不内置任何比较逻辑,支持值比较、类型检查、方法调用及条件组合,并可通过and/or/negate构建复合条件。

BiPredicate 的 test 方法通过调用你实现的逻辑来判断两个对象是否满足指定条件,它本身不规定判断规则,只负责执行你写的布尔表达式。
test 方法本质是自定义逻辑的执行入口
BiPredicate
- 你可以用 == 或 equals 比较值是否相等
- 可以用 instanceof 判断类型关系
- 可以调用对象方法(如 str.contains(other)、list.size() > 0)
- 也可以组合多个条件,比如 t != null && u != null && t.getId().equals(u.getId())
常见判断场景示例
比如判断两个字符串是否长度相等:
boolean result = sameLength.test("hello", "world"); // true
再如判断一个整数是否在某个范围内:
BiPredicate注意 null 安全和语义明确性
test 方法不会自动处理 null,如果你传入 null,逻辑中没判空就会抛 NullPointerException:
- 推荐显式检查:(a, b) -> a != null && b != null && a.equals(b)
- 避免模糊逻辑:比如 (x, y) -> x > y 对于 String 类型无意义,需确保类型兼容或提前转换
- 方法引用也适用:String::equals 实际上是 BiPredicate
,但要注意 this 问题——它等价于 (s1, s2) -> s1.equals(s2),不是对称的
可组合使用 and/or/negate 增强判断能力
BiPredicate 提供默认方法,方便构建复合条件:
BiPredicateBiPredicate
BiPredicate
positiveAndEven.test(4, 6); // true
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











