Скажите, у меня есть аннотация @Annotate
и класс A
. Как я могу проверить, используется ли @Annotate
в классе A
и только в его подклассах (возможно, во время компиляции)?
Итак, если у нас есть:
/* Example 1 */
public class A {
}
public class B extends A {
}
public class C {
}
Как проверить, что класс A
и класс B
могут быть аннотированы @Annotate
, но класс C
недопустим (и может вызвать ошибку компиляции).
Если мы примем решение, что это будет проверено во время компиляции:
/* Example 2 */
public class A {
}
@Annotate
public class B extends A {
}
Пример 2 не вызовет ошибку времени компиляции, поскольку @Annotate
используется для подкласса A
. Пример 3 , однако, вызовет ошибку компиляции, поскольку @Annotate
не используется в подклассе A
.
/* Example 3 */
@Annotate
public class C {
}
Однако в любом случае это не нужно проверять во время компиляции. Я просто лично подумал, что это имеет смысл сделать.