As anotações em jar305.jar devem ser preferidas às anotações semelhantes em annotation.jar para FindBugs?
No FindBugs distribuição,annotations.jar
énã um subconjunto dejsr305.jar
. No entanto, várias anotações parecem estar duplicadas (exatamente ou muito de perto). Devo preferir uma anotação emjsr305.jar
se eu tiver uma escolha?
Observe que não estou interessado apenas em saber que seria "melhor" usar anotações dejsr305.jar
simplesmente porque eles representam um padrão. Em vez disso, quero saber se a ferramenta FindBugs executará a mesma (ou melhor) análise, se eu preferir ojsr305.jar
versão de uma anotação específica. Pode ser que algunsjsr305.jar
notações devem ser preferidas, mas outras nã
Estou usando o FindBugs 1.3.9, que éa versão mais recente até o momento em que escrevi. Nesta versão, vejo as seguintes opções (atualize estemes se houver outros):
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 (capitalização do NB)
edu.umd.cs.findbugs.annotations.Nullable → javax.annotation.Nullable
edu.umd.cs.findbugs.annotations.When → javax.annotation.meta.When
Também, todos os JCIP anotações são 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