En la distribución FindBugs, annotations.jar
es no un subconjunto de jsr305.jar
. Sin embargo, varias anotaciones parecen estar duplicadas (ya sea exactamente o muy de cerca). ¿Debo preferir una anotación en jsr305.jar
si tengo otra opción?¿Deberían preferirse las anotaciones en jar305.jar sobre las anotaciones similares en anotación.jar para FindBugs?
Tenga en cuenta que no estoy solo interesado en saber que sería "mejor" utilizar las anotaciones de jsr305.jar
simplemente porque representan un estándar. Más bien, quiero saber si la herramienta FindBugs realizará el mismo (o mejor) análisis si prefiero la versión jsr305.jar
de una anotación particular. Puede ser que algunas anotaciones de jsr305.jar
sean las preferidas, pero otras no.
Estoy usando FindBugs 1.3.9 que es the most recent version al momento de escribir esto. Con esta versión, veo las siguientes opciones (por favor, actualice esta table si hay otros):
edu.umd.cs.findbugs.annotations.CheckForNull → javax.annotation.CheckForNull
edu.umd.cs.findbugs .annotations.CheckReturnValue → javax.annotation.CheckReturnValue
edu.umd.cs.findbugs.annotations.NonNull → javax.annotation.Nonnull (NB capitalización)
edu.umd.cs.findbugs.annotations.Nullable → javax.annotation .Nullable
edu.umd.cs.findbugs.annotations.Cuando → javax.annotation.meta.Cuando
Además, toda la JCIPannotations están duplicados:
net.jcip.annotations.GuardedBy → javax.annotation.concurrent.GuardedBy
net.jcip.annotations.Immutable → javax.annotation.concurrent.Immutable
net.jcip.annotations.NotThreadSafe → javax.annotation.concurrent.NotThreadSafe
net.jcip.annotations.ThreadSafe → javax.annotation.concurrent.ThreadSafe
Disculpe, no me he dado cuenta del alcance de su pregunta.Sin embargo, convertí todos mis proyectos utilizando findbugs propias anotaciones a las estandarizadas y no noté ningún cambio. Solo mis observaciones personales. Si mal no recuerdo findbugs utiliza el mismo código para la verificación. Echaré un vistazo al código más tarde. Mientras tanto, he votado para eliminar mi respuesta, ya que realmente no está respondiendo tu pregunta :) – Steffen
Sí, pero tu comentario es una muy buena respuesta. Considera hacer una respuesta por favor. Gracias de nuevo. –
Modifiqué mi respuesta. Todavía estoy buscando partes del código autoexplicativas y un par de buenos enlaces. No creo que tenga mucho sentido señalar numerosos archivos de clase que uno debe seguir para entender mi punto. – Steffen