Как применить нулевые аннотации к методу Java, предоставляемому в API?
Скажем, у меня есть класс с инвариантом, что определенная переменная экземпляра никогда не равна нулю. Я также хочу правильно использовать нулевые аннотации jsr305. Класс предоставляется в виде API, поэтому я не могу полагаться на аннотации для предотвращения пустых значений; Мне также нужно проверить на ноль во время выполнения.
public final class NonNullString {
private final String string;
public NonNullString(String string) {
if (string == null) throw new NullPointerException();
this.string = string;
}
public String getString() {
return string;
}
}
Каков наилучший способ применить нулевые аннотации к этому классу? @javax.annotation.Nonnull
Применяется к параметру конструктора и описывает мое намерение, но затем нулевой анализ Eclipse предупреждает, что проверка нуля - это мертвый код. При необходимости я могу подавить предупреждения "Затмения", но это заставило меня задуматься, есть ли лучший способ использовать аннотации.
РЕДАКТИРОВАТЬ: я спрашиваю, как обрабатывать интерфейс между клиентским кодом, который может не использовать нулевые аннотации и код, который использует нулевые аннотации.