В Java нет собственного способа сделать это. Существует множество других вариантов.
Один из подходов заключается в использовании JXPath . Это использует синтаксис в стиле XPath для запроса объектов. Это может быть немного излишним для ваших целей, но, несомненно, мощным.
например. с домашней страницы JXPath:
Address address = (Address)JXPathContext.newContext(vendor).
getValue("locations[address/zipCode='90210']/address");
, который запрашивает у данного объекта вендора его адрес с почтовым индексом 90210. Таким образом, вы можете перемещаться по иерархиям объектов и предоставлять предикаты для выполнения запросов типа «SELECT .. WHERE».
См. Также эту статью java.net для большего количества примеров (бесстыдный плагин того, что я написал).