我需要能够过滤POJO列表以过滤掉我不关心的项目。
他们基本上是POJO的流......
假设我们有一个带有firstName,lastName,telephone,zipcode的User对象流。
我想要一个简单的表达式,如:
firstName =' John'
显然这只会匹配具有该字段的对象。
如果我们可以做布尔逻辑,例如:
,那将是理想的(firstName =' John'或firstName =' Allen')和lastName =' Smith'
我希望语言不支持循环或任意Java代码。
例如。有人可以提交while(true){} ...这将是DoS服务器。
此外,功能和调用标准库也是不可接受的。否则他们可以提交System.exit(1)。
wireshark中使用的过滤语言很不错:
http://www.wireshark.org/docs/wsug_html_chunked/ChCapCaptureFilterSection.html
tcp port 23而不是src host 10.0.0.5
...但我需要Java中的东西。
答案 0 :(得分:1)
骡子示例:
List<User> users = ...;
Map<String,Object> context = new HashMap<String,Object>();
context.put("users", users);
Collection<User> result =
Query.execute("from users where division = 'Engineering'", context);
JXPath示例:
Address address = (Address)JXPathContext.newContext(vendor).
getValue("locations[address/zipCode='90210']/address");