Статья неверна хотя бы для некоторых аннотаций. Думает, что @SuppressWarnings
и @Override
компилятор обладает очень специфическими знаниями. Фактически, статья сама указывает на это:
Метаданные используются компилятором для выполнения некоторой базовой проверки во время компиляции. Например, есть аннотация переопределения, которая позволяет указать, что метод переопределяет другой метод из суперкласса.
Как он может использоваться компилятором, если "теги на самом деле не имеют значения для компилятора Java", я не знаю ...
Кроме того, даже для аннотаций, к которым компилятор не присоединяет никакой семантической , означающей , он все равно будет проверять, что при попытке указать конкретные аргументы и т. Д., Что эти аргументы имеют разумные имена и типы для аннотация, которую вы используете.