题
我在某些情况下需要一些类来表示和操作条件(通常在UI中,因此用户通过组合不同的条件类型来构建查询,然后代码可以根据要查询的底层系统对其进行转换,例如lucene和db)。我搜遍了一组可重复使用的类,我确信这必须在许多现有的地方使用(所有表达语言都是初学者),但找不到任何容易使用的东西。我自己最终编写了两次编码,但是对于不重复使用我确定存在的东西感到很难过。
典型需求是: - 几个运营商:和/或等 - 可变数量的操作数 - 结合条件来构建表达式 - 序列化表达式 - 从/到字符串
解析/格式化表达式有人找到了类似的东西吗?
解决方案
查看 Apache Commons Functor 。例如。 UnaryPredicate , UnaryAnd , UnaryOr 等。 -in实现是Serializable,但我不知道从字符串解析。不过,我认为这是你想要的一个非常好的开始。另外,请查看基于此IBM教程的内容。库。
其他提示
这听起来像是在寻找像 Hibernate这样的东西Criteria API 。缺点是您与数据库绑定甚至更糟糕的是特定的持久性框架实现。它也没有满足你们的所有要求,所以我认为这不是一个好的选择......
您可以查看 ANTLR 。
不隶属于 StackOverflow