Как применить нулевые аннотации к методу 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 предупреждает, что проверка нуля - это мертвый код. При необходимости я могу подавить предупреждения "Затмения", но это заставило меня задуматься, есть ли лучший способ использовать аннотации.

РЕДАКТИРОВАТЬ: я спрашиваю, как обрабатывать интерфейс между клиентским кодом, который может не использовать нулевые аннотации и код, который использует нулевые аннотации.

0 ответов

Другие вопросы по тегам