2011-01-07 16 views
16

Un compañero de trabajo en IntelliJ IDEA (trabajando en otro proyecto) me mostró la increíble anotación @NotNull. He leído mensajes aquí en SO sobre cómo comenzar a agregar @NotNull en todas partes ahorró mucho tiempo y dolores de cabeza (e IntelliJ 10 incluso puede agregar automáticamente @NotNull al código anterior cuando detecta que nulo causaría estragos).Utilizando @NotNull en un proyecto donde están trabajando los desarrolladores de IntelliJ y Eclipse

Desde que leí mi primer "violación probable @NotNull" mensaje (en tiempo real, en el IDE, incluso en un archivo parcial .java que no compila todavía) me quedé boquiabierto y me dio enganchado.

Me preguntaba: ¿hay algo que deba saberse si queremos comenzar a utilizar @NotNull en un proyecto en el que los desarrolladores utilizan tanto Eclipse como IntelliJ?

Sé que IntelliJ se envía con el annotations.jar. ¿Es esto compatible con Eclipse?

+0

@duffymo: Lo sé, lo sé ... Pero todavía habría que saber cómo podríamos utilizar tanto Eclipse y IntelliJ y seguir utilizando @NotNull. En cierto modo, no es un problema si Eclipse no advierte en tiempo real sobre las violaciones probables a @NotNull, siempre y cuando los desarrolladores que usan Eclipse aún puedan usar las anotaciones en su proyecto. Sería grandioso si alguien que tenga experiencia con esto pudiera comentar :) Pero, sí ... IntelliJ oscila bastante :) – Gugussee

+4

No hay nada más frustrante que ver el código desarrollado por alguien que usa Eclipse en IntelliJ. Advertencia en todas partes. – sblundy

Respuesta

6

También existe la posibilidad de almacenar las anotaciones fuera de la fuente. Configuración> Estilo de código> Generación de código> Usar anotaciones externas. Las anotaciones se almacenan en un archivo anotaciones.xml en lugar de en el origen. De esta forma, los usuarios de Eclipse nunca tendrán que ver las anotaciones. La ubicación de annotations.xml se puede configurar y probablemente sea mejor almacenar el archivo con el proyecto en el control de la versión.

Ver

http://www.jetbrains.com/idea/webhelp/using-external-annotations.html http://blogs.jetbrains.com/idea/2008/02/external-annotations/

+0

Recuerdo leer sobre eso hace al menos un año pero nunca lo intenté. ¿Sabes si se mezcla bien con VCS y DVC como Mercurial? Estoy un poco preocupado porque a menudo necesito saltar a otra rama, deshacer, aplicar "correcciones daggy", etc. – Gugussee

4

Puede usar annotations.jar con Eclipse, pero probablemente no obtenga ningún beneficio ... Consulte this SO post.

1

Findbugs tiene una funcionalidad similar, pero la integración es una sombra pálida de la potencia incorporada de IntelliJ.

2

Puede admitir ambos IDEs con los FindBugs @NonNull y los complementos IDE relacionados.

1

Te preguntaría por qué un equipo no utiliza un IDE común. ¿Por qué no estandarizar en uno u otro? (Usted sabe con cuál recomendaría que vaya).

+10

Porque probablemente terminará como Eclipse y ningún usuario de IntelliJ lo quiere. – sblundy

+4

De hecho, he visto una empresa donde las personas querían tanto el entorno de desarrollo de proyectos Java * como * que el producto final fuera completamente portátil. Su razonamiento era que si algunos desarrolladores podían trabajar en Windows/Eclipse, otros en Linux/Eclipse, otros en Mac/IntelliJ, etc. y desplegados en, digamos, tanto Linux (por ejemplo, localmente) como Solaris (por ejemplo, en preprod y prod) , entonces significó que el proyecto tenía más probabilidades de estar bien diseñado/arquitecturado/configurado/etc. Creo que tiene sentido. – Gugussee

+0

@sblundy: lol :) – Gugussee

Cuestiones relacionadas