应用于类型的注解直接出现在被注解的类型之前。如果注解是用 @Target(ElementType.TYPE_USE)
进行元注解的,那么它就是一个类型注解。示例如下:
final @Nullable String name;
public @Nullable Person getPersonByName(String name)
应用于类的注解紧跟在文档块之后,并且每个注解都列在自己的行上(也就是每行一个注解)。这些换行并不构成换行,所以缩进级别不增加。示例如下:
@Deprecated
@CheckReturnValue
public final class Frozzler { ... }
应用于方法或构造函数的注解的规则和 上一节 一样。实例如下:
@Deprecated
@Override
public String getNameIfPresent() { ... }
应用于字段的注解也紧跟在文档块之后,但在这种情况下,多个注解(可能带参数)可以列在同一行上;例如:
@Partial @Mock DataLoader loader;
应用于参数或局部变量的注解没有一个具体的编写规则(当然,当注解是类型注解时除外)。