LINQ para Java sería encantador, pero el problema es la integración de idiomas.
Java no tiene nada tan conciso como expresiones lambda, y son uno de los cimientos de LINQ. Supongo que podría superponer el soporte de expresión de consulta sobre Java normal sin expresiones lambda, haciendo que la expansión cree clases internas anónimas, pero sería bastante horrible. También necesitaría árboles de expresión si quisiera hacer algo como LINQ to SQL.
Las excepciones registradas podrían ponerse en medio, pero tendríamos que ver. El equivalente de IQueryable necesitaría tener algún tipo de excepción comprobada general, o posiblemente podría ser genérica tanto en el tipo de elemento como en el tipo de excepción ...
De todos modos, esto es todo en el cielo - dados los problemas que la comunidad Java está teniendo con los cierres, creo que sería una locura esperar algo como LINQ en Java antes de 2012. Por supuesto, eso no quiere decir que no sería posible en un "estilo Java" idioma. Groovy ya tiene ciertos aspectos útiles, por ejemplo.
Para el lado de la biblioteca, Hibernate ya ofrece una versión "no integrada" de muchas de las características de LINQ to SQL. Para LINQ to Objects, debe mirar el Google Java Collections API - es mucho del mismo tipo de cosas (filtrar, proyectar, etc.). Sin lambdas es mucho más difícil de usar, por supuesto, pero aún así es realmente útil. (Utilizo el código Google Collections todo el tiempo en el trabajo, y me gustaría volver a las colecciones Java "vainilla")
Para LINQ a los objetos, consulte este: github.com/nicholas22/jpropel-light, ejemplo real: new String [] {"james", "john", "john", "eddie"} .where (startsWith ("j")). toList(). distinct(); –
Scala LINQ: https://github.com/nicholas22/propelS – Scooterville