Annotations should be positioned after Javadocs, but before modifiers.


The problem

Per the style guide, TYPE_USE annotations should appear immediately before the type being annotated, and after any modifiers:

public <K, V> @Nullable V getOrNull(final Map<K, V> map, final @Nullable K key) {
  return map.get(key);

Non-TYPE_USE annotations should appear before modifiers, as they annotate the entire element (method, variable, class):

public void reset() {
  // ...

Javadoc must appear before any annotations, or the compiler will fail to recognise it as Javadoc:

/** Might return a frobnicator. */
Frobnicator getFrobnicator();


Suppress false positives by adding the suppression annotation @SuppressWarnings("AnnotationPosition") to the enclosing element.