sql >> Base de Datos >  >> RDS >> Mysql

LINQ para la herramienta Java

LINQ para Java sería maravilloso, pero el problema es la integración del lenguaje.

Java no tiene nada tan conciso como las expresiones lambda, y son una de las bases de LINQ. Supongo que podrían superponga 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 comprobadas podrían interponerse en el camino, 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érico tanto en el tipo de elemento como en el tipo de excepción...

De todos modos, todo esto es pan comido:dados los problemas que tiene la comunidad de Java con los cierres, creo que sería una locura esperar algo como LINQ en Java antes de 2012. Por supuesto, eso no quiere decir no sería posible en un lenguaje "similar a Java". Groovy ya tiene ciertos aspectos útiles, por ejemplo.

Por el lado de la biblioteca, Hibernate ya proporciona una versión "no integrada" de muchas de las características de LINQ to SQL. Para LINQ to Objects, debe consultar la API de colecciones Java de Google - es mucho del mismo tipo de cosas (filtrado, proyección, etc.). Sin lambdas, es mucho más complicado de usar, por supuesto, pero sigue siendo muy, muy útil. (Uso el código de Google Collections todo el tiempo en el trabajo y no me gustaría volver a las colecciones de Java "vainilla").