грамматика языка Java
Любой тип может иметь префикс [Annotations]:
Type:
[Annotations] Identifier [TypeArguments] {. Identifier [TypeArguments]} {[]}
[Annotations] BasicType
Кразрешить аннотации на уровнях массива (в объявлениях, а не в конструкторах), измените «{[]}» на «{[Annotations] []}».(Это было выделено как «BracketsOpt» во 2-м издании JLS [GJSB00].) Например:
Type:
[Annotations] Identifier [TypeArguments]{ . Identifier [TypeArguments]} {[Annotations] []}
[Annotations] BasicType
Also permit annotations on varargs (...):
FormalParameterDeclsRest:
VariableDeclaratorId [, FormalParameterDecls]
[Annotations] ... VariableDeclaratorId
Аннотации могут появиться на типе приемника, изменив использование «FormalParameters» (во всех 5 местах, которые появляются в грамматике) на «FormalParameters [Annotations]».Например:
VoidMethodDeclaratorRest:
FormalParameters [Annotations] [throws QualifiedIdentifierList] ( MethodBody | ; )