【发布时间】:2012-10-02 13:38:53
【问题描述】:
假设我有以下课程:
class Person {
int age;
String city;
Collection<Person> friends;
Person spouse;
}
我需要一个库,它可以让我评估给定 Person 对象上的逻辑表达式是否为真。表达式看起来像这样:
((age>25 OR spouse.age>27) AND city=="New-York" AND size(friends)>100)
所以,要求是:
- 能够使用基本的逻辑运算符
- 访问给定对象的属性
- 访问内部对象的属性
- 使用简单的数学\类似 sql 的函数,例如 size、max、sum
建议?
【问题讨论】:
-
您能说说为什么不能使用纯 Java 来执行此操作吗?表达式必须来自动态字符串吗?
-
为什么不自己写函数??
-
为什么你需要任何库??
-
为什么你需要一个库来做任何事情?因为它比看起来更复杂(主要是解析问题),而且你可能会遇到很多陷阱,而可靠的库已经消除了这些陷阱。
标签: java expression evaluate