我在某些情况下需要一些类来表示和操作条件(通常在UI中,因此用户通过组合不同的条件类型来构建查询,然后代码可以根据要查询的底层系统对其进行转换,例如lucene和db)。我搜遍了一组可重复使用的类,我确信这必须在许多现有的地方使用(所有表达语言都是初学者),但找不到任何容易使用的东西。我自己最终编写了两次编码,但是对于不重复使用我确定存在的东西感到很难过。

典型需求是:   - 几个运营商:和/或等   - 可变数量的操作数   - 结合条件来构建表达式   - 序列化表达式   - 从/到字符串

解析/格式化表达式

有人找到了类似的东西吗?

有帮助吗?

解决方案

查看 Apache Commons Functor 。例如。 UnaryPredicate UnaryAnd UnaryOr 等。 -in实现是Serializable,但我不知道从字符串解析。不过,我认为这是你想要的一个非常好的开始。另外,请查看基于此IBM教程的内容。库。

其他提示

听起来你可能正在寻找 Functors (又名函数对象)。 如果是这样,这个 SO问题将是相关的, WRT。选择:Commons functor(已经提到)是另一种选择,但也有其他选择。

所有函子库都带有框架(非常简单;一元,二元谓词,映射功能,通过链接组合)和最常用的基本函数集。

这听起来像是在寻找像 Hibernate这样的东西Criteria API 。缺点是您与数据库绑定甚至更糟糕的是特定的持久性框架实现。它也没有满足你们的所有要求,所以我认为这不是一个好的选择......

您可以查看 ANTLR

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top