studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java collections upgrade apache-commons binary-compatibility

java - programacion - Colección de recursos genéricos



manual de programacion android pdf (8)

Dado que la última palabra en el debate interno de Yakarta fue en diciembre de 2007, diría que Apache no adoptará los genéricos, dejando el campo abierto para algo amigable con Java5 como Google Collections .

Estoy asombrado de que el proyecto de colecciones de Apache Commons todavía no haya logrado concientizar a su biblioteca sobre los genéricos. Realmente me gustan las funciones que ofrece esta biblioteca, pero la falta de soporte para los genéricos es un gran obstáculo. Hay un fork de Lavalabs de Commons Collections que admite genéricos , que parece exigir compatibilidad con versiones anteriores, pero cuando intenté actualizar a esta versión, mi aplicación web no se inició (en JBoss).

Mis preguntas son:

  • Si alguien ha actualizado con éxito de Commons Collections a la bifurcación mencionada anteriormente
  • Si Commons Collections tiene algún plan para agregar soporte para genéricos

Por cierto, estoy al tanto de las colecciones de Google, pero soy reacio a usarlo hasta que la API se estabilice.

Saludos, Don


Hay contribuciones Pagar el jira

También hay una rama JDK5 .

Nos gustaría agregar genéricos y actualizar Commons Collections a 1.5 (y 1.6). El mayor problema es cómo abordar la compatibilidad con versiones anteriores. Y la gente tiene opiniones muy diferentes allí. Para algunos de los componentes de Commons, el nuevo JDK casi pide una reescritura para el nuevo JDK en mi humilde opinión.

Durante ApacheCon, sin embargo, sentí el impulso de varias personas para hacer que esto avanzara. Es solo una gran tarea.

Siéntase libre de aparecer en [email protected]

aplausos, Torsten


No me puedo imaginar qué razón puedes tener para no usar las colecciones de google. Es bastante simple de usar esa biblioteca.

Para mi trabajo, uso ambos, colecciones de apache y colecciones de google.

¿Puedes explicar más acerca de por qué no puedes usar las colecciones de google?

Saludos


Considera Google Collections . De su entrevista en Javalobby :

[Google Collections está] construida con las características de Java 5: genéricos, enums, tipos de retorno covariante, etc. Al escribir el código de Java 5, desea una biblioteca de colecciones que aproveche al máximo el idioma. Además, nos esforzamos enormemente para que la biblioteca sea completa, robusta y consistente con las clases de colección JDK.


Digo, muerde la bala y cambia a google-collections, al menos para el nuevo código.

Sé que está preocupado por la estabilidad, pero la biblioteca de colecciones de google está MUY cerca de estable para la versión 1.0: cuelgue en la lista de desarrolladores o mire sus problemas informados, ya son muy cautelosos con los cambios, especialmente con los que se rompen. Cualquier incompatibilidad entre la versión actual y la final (aparentemente inminente) 1.0 va a ser extremadamente pequeña.

Además, si le preocupa la estabilidad, elija una versión (por ejemplo, la actual, 1.0 RC4), y ... simplemente no actualice. Seguro, no obtendrá ninguna característica nueva, pero las colecciones comunes no se han actualizado de manera significativa en varios años , por lo que realmente está peor? Al menos estás congelado en algo con genéricos y (en mi humilde opinión) una API mucho mejor.


Hay un puerto genérico de colecciones de Commons 3.1 disponible aquí , que hemos estado usando durante algunos años. Hace el trabajo muy bien, y dado que se basa estrictamente en la fuente de Commons existente, tiene una API estable.

Sin embargo, podría usar la actualización para ajustarse a Commons Collections 3.2.



El problema general de BC es que el paquete org.apache.commons.collections ha cambiado de nombre a org.apache.commons.collections15 . No sé el motivo de este cambio. Intente cambiarle el nombre, vuelva a compilar la biblioteca y vuelva a ejecutar su aplicación.

He encontrado este problema usando la herramienta Clirr en commons-collections-3.2.1.jar (de Apache) y collections-generic-4.01.jar (de Lavalabs).