Зависит от объявления аннотации. По умолчанию все аргументы обязательны.
@interface Author {
String first();
String last();
}
class Book {
public static void main(String[] args) {
@Author(first = "John")
Book book = new Book();
}
}
В этом примере будет ошибка времени компиляции error: annotation @Author is missing a default value for the element 'last'
.
Так что, если нет причины устанавливать значение по умолчанию для аргумента аннотации, он не должен быть отмечен default
в декларации. И в этом случае каждый аргумент должен быть предоставлен.