LINQ for Java是有用的工具吗?我一直在研究一种工具,该工具将允许Java对象映射到数据库中的行。
LINQ for Java会很漂亮,但是问题是语言集成。
Java没有lambda表达式那么简洁,它们是LINQ的基础之一。我想他们 可以 通过使扩展创建匿名内部类,从而在没有lambda表达式的情况下将查询表达式支持置于普通Java之上,但这将非常丑陋。如果您想执行类似LINQ to SQL的操作,则还需要表达式树。
受检查的异常 可能 会妨碍您,但我们必须要看到。等同于IQueryable的对象将需要某种常规的已检查异常-或可能在元素类型和异常类型中都是通用的…
无论如何,这都是天上掉馅饼- 鉴于Java社区在使用闭包方面遇到的麻烦,我认为在Java本身早于2012年之前预料像LINQ这样的事情是愚蠢的。当然,这并不是说用“类似于Java”的语言是不可能的。例如,Groovy已经具有某些有用的方面。
对于库方面,Hibernate已经提供了LINQ to SQL的许多功能的“非集成”版本。对于LINQ to Objects,您应该查看Google Java Collections API-这是很多相同的东西(过滤,投影等)。当然,没有lambda的话,使用起来就很麻烦了- 但它仍然非常方便。(我一直在工作中使用Google收藏夹代码,但我不想回到“原始的” Java收藏夹。)