Pregunta

Proyecto Lombok ofrece ningún beneficio en comparación con plantillas de código / generación de código en Eclipse? ¿Hay algunas desventajas (aparte de incluir el .jar)?.

¿Fue útil?

Solución

Una de las ventajas de Lombok es que una vez que haya una clase anotada con, por ejemplo, la anotación @Data, que nunca es necesario para regenerar el código cuando se realizan cambios. Por ejemplo, si se agrega un nuevo campo, @Data incluiría automáticamente ese campo en el iguales, hashCode y métodos toString. Que había necesidad de hacer que el cambio de forma manual cuando se utilizan métodos Eclipse generados. Algunas veces, puede que prefiera el control manual, pero para la mayoría de los casos, no esperar.

Otros consejos

La ventaja de Lombok es que el código no está realmente allí. - es decir, las clases son mucho más legible y no están atestadas

Ventajas:

  • Muy fácil de usar
  • Las clases son mucho más limpia ( 'no código repetitivo'), especialmente struct'-como' clases internas reducir al mínimo:

    @Data private class AttrValue { private String attribute; private MyType value; }

    Esto creará dos captadores y definidores, un método toString (), y el hash correcto () métodos / equals (), incluyendo ambas variables. La variante con @Value crea una estructura inmutable (no hay emisores, todos los campos finales).

  • No hay necesidad de generar / Quitar código cuando cambia campos (getters, setters, toString, hachís, es igual)
  • No hay interferencia con los métodos de codificación manual: simplemente se agrega propia incubadora específica a la clase cuando sea necesario. Lombok salta esto y genera todo lo demás

Desventajas:

  • No hay nombre refactorización, sin embargo: el cambio de nombre value anteriormente no (todavía) de cambio de nombre y getValue() setValue()
  • mayo ralentiza ecplise ligeramente hacia abajo
  • salida toString no tan bien como, por ejemplo, ToStringBuilder de Apache Commons

Muy pocos vienen a la mente:

  • se basa en la anotación, por lo que no es bueno para el proyecto legado todavía en pre-Java5 ( delombok puede ayudar). En realidad, se requiere el uso del compilador javac v1.6.
  • todavía tiene limitaciones en relación con varios constructores

La cuestión de la dependencia no debe ser pasado por alto, sin embargo, pero se han excluido de su pregunta.

Eclipse EMF ofrece algunas características que son muy práctico, que Lombock todavía no soporta:

  • Potentes mechanims de notificación para informarse acerca de los cambios en las instancias
  • API genérica sin java reflexión. El acceso y modificar casos sin una referencia fuerte para el tipo
  • Comando und edición basada en API
  • Las referencias cruzadas entre los modelos: Crear y árboles modelo de carga y EMF trata la carga mediante la creación de un proxy para la referencia cruzada. Esto ahorra memoria y el rendimiento impulso en enormes árboles de dominio
  • Y mucho más ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top