是否有Java中的类似LINQ的功能?

10

2
他们中的大多数都错误地指定了什么都没有 - 如果您如此确定他们“错误地指定了什么都没有”,那么为什么要问这个问题呢? - Tudor
2
我来自.NET背景,正在使用这个库。当寻找类似的东西时,我看到的都是“没有这样的东西”。因此,这是为那些必须在项目中使用Java的人而准备的。 - Scooterville
3
@Fredrik:这是可以并且甚至被鼓励的 - Greg Kopff
1
@GregKopff 尽管可能有其他提出同样问题的问题,他难道不能回答其中一个问题并说明其他答案是错的吗? - Pablo
1
@Pable 但这些问题已经得到回答并且被接受了。 - Scooterville
显示剩余3条评论
2个回答

20

这个库提供了完整的LINQ API:https://github.com/nicholas22/jpropel-light

它使用函数式构造来实现,并且还使用了延迟执行。

// select names starting with j, using LINQ-style statements
new String[] { "james", "john", "john", "eddie" }.where(startsWith("j")).distinct().all(println());

12
没有Lambda,就不能实现。目前仍然完全缺乏将表达式分解为其组成部分,并将其翻译成复杂层次查询的SQL表达式的能力。 - DaveMorganTexas
8
LINQ-to-SQL 不等同于 LINQ。 - Evan Plaice
1
@EvanPlaice - 适当的术语应该是“查询表达式”,而不是“SQL表达式”。如果Dave能够进行替换,他的评论将变得更具普适性,而不仅仅局限于SQL领域。 - Code Jockey
1
正如在什么是Java中的LINQ等效物?的评论中指出的那样,需要对C#和.Net框架进行更改——Lambda、扩展方法——然后才能创建作为LINQ提供程序的方法库。在Java进行深层次的更改之前,“LINQ API”都将是浅层次的廉价模仿品,是最终仍需要大量代码来正确“解决”LINQ所实现的深度集成的缺乏的“装饰器”。 - MicroservicesOnDDD

4

这个是否是最新的?它说它使用Java 7的闭包。但是在JDK 7中并没有闭包... - Scooterville
1
是的,这很奇怪。但它具有通常的方法whereselect等。 - Tudor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接