| Per the [style guide][style-guide], `TYPE_USE` annotations should appear | |
| immediately before the type being annotated, and after any modifiers: | |
| ```java | |
| 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): | |
| ```java | |
| @VisibleForTesting | |
| public void reset() { | |
| // ... | |
| } | |
| ``` | |
| Javadoc must appear before any annotations, or the compiler will fail to | |
| recognise it as Javadoc: | |
| ```java | |
| @Nullable | |
| /** Might return a frobnicator. */ | |
| Frobnicator getFrobnicator(); | |
| ``` | |
| [style-guide]: https://google.github.io/styleguide/javaguide.html#s4.8.5.1-type-use-annotation-style |