型修飾子アノテーションを指定した値がその修飾子を付けてはならない値を必要とする場所で使われています。

より正確に、when=ALWAYS を指定した型修飾子でアノテートされた値が到達することが保証されているか同じ型修飾子で when=NEVER を指定する場所で使用しています。

たとえば、@NonNegative が型修飾子アノテーション @Negative(when=When.NEVER) の略称だとします。 以下のコードは、return 文が @NonNegative 値を要求するが @Negative としてマークされている値を受け取るのでこの警告を生成します。

public @NonNegative Integer example(@Negative Integer value) {
    return value;
}