Java: как установить значение по умолчанию для аннотации с другой аннотацией в качестве атрибута?

1

У меня есть аннотация с тремя атрибутами:

public @interface Date {
    int day() default 1;
    int month() default 1;
    int year() default 2000;
}

И аннотация, использующая предыдущую аннотацию как атрибут:

public @interface Author {
    String name();
    Date date(); //default value here
}

Как установить значение по умолчанию для date атрибута?

  • 0
    Почему вы пытаетесь использовать аннотации в качестве поля? Вся идея аннотаций заключается в том, чтобы быть метаданными, а не данными. Не могли бы вы поделиться требованиями, которые приводят вас к этому дизайну?
  • 0
    Разве вы не можете просто сделать простой Date date() default @Date(); ?
Теги:
annotations

1 ответ

4
Лучший ответ

Вы делаете это, предоставляя аннотацию по умолчанию...

Например:

public @interface Author {
    String name();
    Date date() default @Date(year=2014);
}
  • 0
    Благодарю. Я даже не думал о таком варианте.
  • 0
    это безупречный балдер!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню