Anders Norås elkészítette-elindította a Microsoft LINQ nevű ötletének első Java implementációját, a Quaere projektet. A projekt lényege, hogy SQL szerű lekérdezéseket tudunk intézni a Java osztályokba ágyazva, így lehetőségünk van tömbökből vagy halmazokból elemeket lekérdezni, amelyek megfelelnek a szűkítésnek. Például az ötnél kisebb számokat az alábbi programrészlet válogatja ki egy külön listába:
Code Block |
---|
Integer[] numbers = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}; Iterable<Integer> lowNums = from("n").in(numbers). where(lt("n", 5)). select("n"); |
Természetesen kissé nehézkes lehet a kérdező "nyelv" megtanulása, talán még lassabb is, mint megírni közvetlenül a programot, de mégis rugalmasabb lehet összetett lekérdezéseket tekintve. A Quaere egy sajátos Expression Language használatával képes egy struktúrából leválogatni a neki kellő adatokat:
Code Block |
---|
List<Product> products = Arrays.asList(Product.getAllProducts()); Iterable<String> productNames = from("p").in(products). select("p.getProductName()"); |