LINQ for java 会是一个有用的工具吗?我一直在研究一种工具,它允许 Java 对象映射到数据库中的一行。
最佳答案
LINQ for Java 会很不错,但问题在于语言集成。
Java 没有像 lambda 表达式那样简洁的东西,它们是 LINQ 的基石之一。我想他们可以在没有 lambda 表达式的普通 Java 之上将查询表达式支持分层,通过使扩展创建匿名内部类 - 但它会非常可怕。如果您想执行 LINQ to SQL 之类的操作,还需要表达式树。
已检查的异常可能会妨碍您,但我们必须看到。 IQueryable 的等价物需要有某种通用的检查异常 - 或者它可能在元素类型和异常类型中都是通用的......
无论如何,这都是天上掉馅饼 - 考虑到 Java 社区在闭包方面遇到的麻烦,我认为在 2012 年左右之前期望 Java 本身出现类似 LINQ 之类的东西是愚蠢的。当然,那是并不是说用“类似 Java”的语言是不可能的。例如,Groovy 已经具有某些有用的方面。
在库方面,Hibernate 已经提供了 LINQ to SQL 的许多功能的“非集成”版本。对于 LINQ to Objects,您应该查看 Google Java Collections API - 有很多相同的东西(过滤、投影等)。当然,如果没有 lambdas,使用起来会更加繁琐——但它仍然非常非常方便。 (我在工作中一直使用 Google 集合代码,我不想回到“普通”Java 集合。)
https://stackoverflow.com/questions/346721/