【发布时间】:2021-04-07 23:49:13
【问题描述】:
我不确定这是否可能,经过大量研究后,我最终来到这里寻求您的帮助甚至指导。 所以,假设我有一个 json 数组,该数组中有 10 种不同类型的对象。这是一个通过体育游戏 API 检索的 json。 我需要做的是在我的应用程序中过滤这些对象。我正在使用 JAVA,到目前为止,我最终将使用流过滤器和谓词。我知道我可以创建不同类型的谓词并将它们放在 stream.filter() 函数中,但是是否可以以某种方式动态地做到这一点?
例如,我需要按时间过滤这个数组。这个谓词将是
return p -> p.getTime() > 1;
然后:
return match.stream().filter( predicate ).collect(Collectors.<Match>toList());
如果另一个过滤器有另一个条件是团队名称怎么办。是否可以添加一些其他谓词的方式,并在这两者之间添加“AND”“OR”条件?我需要使用具有不同谓词的一个过滤器函数动态地执行此操作。
有没有办法制作像自定义查询这样的东西来将其存储在数据库中并检索它并像谓词一样使用它?或者谓词本身是否可以存储在数据库中?
如果我完全错了,请指导我找到另一种方法来做到这一点。否则将不胜感激。谢谢大家,祝大家新年快乐。 :)
【问题讨论】:
-
ands 上有一个and方法,它返回一个新的组合方法。您可以通过首先将它们(动态地)组合成一个来构建您在过滤器中使用的那个。 docs.oracle.com/javase/8/docs/api/java/util/function/… -
edit 您的问题并发布示例 JSON 字符串以及您想从该字符串中获取的
List。 -
你的意思是
Predicate#and和Predicate#or(它们都是有效的静态方法)? -
我不明白为什么这被否决了。我是新来的。不知道怎么表达不是很正常吗?或者编程中存在什么?反正。我不需要显示代码。我需要一个理论来寻找更好的方向。我不需要规范,这就是为什么我不显示任何 JSON 或任何代码的原因。考虑一个来自 dB 的过滤器,同时让过滤器基于该过滤器构造一个谓词。
标签: java json api filtering predicate