所以我希望能够存储 boolean
测试而不存储值 (true
/false
),我会希望能够通过方法传递多个 boolean 测试。甚至可能切换参数和运算符。有办法做到这一点吗?
我见过一些人将它们保存为 String
,然后使用 BeanShell 中的 Interpreter
,但是还有其他方法吗?或者我应该尽力创造一种方法来做到这一点?
最佳答案
在 Java 8 中,您可以使用 lambda。 java.util.function
有许多表示返回 boolean 值的函数的类(Predicate
、BiPredicate
、IntPredicate
、DoublePredicate
等。 ),并且这些类型可用于保存返回 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/