Pregunta

combinando cierres (FCM) y genéricos, sería posible tener criterios de tipo seguro completamente.

// The following works without a cast as Foo.id is a 'long' field.
List<Long> ids = session.createCriteria(Foo.class)
                        .setProjection(Foo#id)
                        .list();

// The following is a compilation error, as Foo.bar is defined as an int, and not a string
session.createCriteria(Foo.class)
       .addRestriction(Restrictions.eq(Foo#bar,"blah"))
       .list();

He leído la especificación 2.0 de la APP para el criterio de tipo de fallos. Pero aún es un poco deficiente.

Además, sólo estoy usando criterios aquí como un ejemplo de la mejora de la seguridad de tipos de código en general. He utilizado la tipificación estática de java en gran medida que me deje código más rápido. Pero como resultado me picaron de vez en cuando por las partes de mi código que ignoran a escribir. Por ejemplo HQL consulta.

¿Fue útil?

Solución

El código que está describiendo no utiliza cierres pero literales ( literales método ). Al igual que la buena clase noreferrer"> APP trabajo en torno a la generación de código fuente 2 para una interfaz de consulta de tipo seguro podría ser reemplazado con él. Si que será parte de JDK7.

Otros consejos

Como señala Thomas, esto no requiere estrictamente cierres. Está todo en el aire en este momento, dado que no se sabe muy bien qué propuesta está siendo estudiada. No está claro si FCM es en realidad la base de la propuesta, sobre todo teniendo en cuenta que Stephen Colebourne parecía ser tan susprised como cualquiera sobre el anuncio.

Una gran cantidad de personas que están apuntando en de Neal Gafter misteriosamente-revisado-más o menos derecha como-la-Devoxx-presentación-anunciando-cierres-ser-ser-dado especificaciones como un indicio de lo que forma cierres podrían tomar. Eso sí, la propuesta revisada se ve (estéticamente) más bien como FCM!

Esa especificación Qué incluye el tipo de referencias que se refieren a (bajo 'Método Referencias' en la línea de arriba), y por supuesto FCM tiene el mismo. Sí, esto sería sin duda hará que usted sugiere posible. Mi pensamiento primer al leer acerca de esto era cómo afectaría a JPA / Hibernate, y / o nuestras propias capas de abstracción alrededor mismo, en este sentido. Typesafe, referencias de métodos refactorable en sus criterios? Claro que sí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top