В дистрибутиве FindBugs annotations.jar
является , а не подмножеством jsr305.jar
.Тем не менее, несколько аннотаций, кажется, дублируются (либо точно, либо очень близко).Должен ли я предпочесть аннотацию в jsr305.jar
, если у меня есть выбор?
Обратите внимание, что мне не просто интересно знать, что было бы «лучше» использовать аннотации из jsr305.jar
просто потому, что они представляют собойстандарт.Скорее, я хочу знать, будет ли инструмент FindBugs выполнять тот же (или лучший) анализ, если я предпочитаю версию jsr305.jar
конкретной аннотации.Возможно, что некоторые аннотации jsr305.jar
предпочтительнее, а другие нет.
Я использую FindBugs 1.3.9, самая последняя версия на момент написания этой статьи,В этой версии я вижу следующие варианты (пожалуйста, обновите эту таблицу , если есть другие):
edu.umd.cs.findbugs.annotations.CheckForNull → javax.annotation.CheckForNulledu.umd.cs.findbugs.annotations.CheckReturnValue → javax.annotation.CheckReturnValueedu.umd.cs.findbugs.annotations.NonNull → javax.annotation.Nonnull (прописная буква)edu.umd.cs.findbugs.annotations.Nullable → javax.annotation.Nullableedu.umd.cs.findbugs.annotations.When → javax.annotation.meta.When
Кроме того, все JCIP аннотаций дублируются:
net.jcip.annotations.GuardedBy → javax.annotation.concurrent.GuardedBynet.jcip.annotations.Immutable → javax.annotation.concurrent.Immutablenet.jcip.annotations.NotThreadSafe → javax.annotation.concurrent.NotThreadSafenet.jcip.annotations.ThreadSafe → javax.annotation.concurrent.ThreadSafe