java - 如何存储 boolean 测试/表达式而不评估它?

标签 java boolean boolean-expression

所以我希望能够存储 boolean 测试而不存储值 (true/false),我会希望能够通过方法传递多个 boolean 测试。甚至可能切换参数和运算符。有办法做到这一点吗?

我见过一些人将它们保存为 String,然后使用 BeanShell 中的 Interpreter,但是还有其他方法吗?或者我应该尽力创造一种方法来做到这一点?

最佳答案

在 Java 8 中,您可以使用 lambda。 java.util.function有许多表示返回 boolean 值的函数的类(PredicateBiPredicateIntPredicateDoublePredicate 等。 ),并且这些类型可用于保存返回 boolean 值的表达式。示例:

BiPredicate<Integer,Integer> pred = (x, y) -> x > y;

现在 pred 包含一个函数,用于测试第一个整数是否更大,但该函数实际上不会被评估,直到您使用类似的东西

boolean result = pred.test(arg1, arg2);

关于java - 如何存储 boolean 测试/表达式而不评估它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25254647/

相关文章:

java - 如何改变随机数的概率

java - JLS哪一部分说匿名类不能有public/protected/private成员类

r - 检查字符串是否包含字母字符以外的字符

java - 为什么我不能使用 JMockit 模拟数学

java - Java中如何保证用户输入始终为Integer

python - 编辑 boolean 值和运算符

c++ - 通过引用为 Bool 设置默认值

kotlin - 如何在Kotlin中评估由String表示的 bool 表达式?

java - Object.equals(Boolean, Boolean) 与逻辑运算符 (Java)

java - Eclipse 调试器总是阻塞在 ThreadPoolExecutor 上,没有任何明显的异常,为什么?