Ответ 1
Символ @обозначает аннотацию Java. Что делает аннотация Java, заключается в том, что она добавляет специальный атрибут к переменной, методу, классу, интерфейсу или другим языковым элементам. (Это можно настроить, когда вы объявляете аннотацию). Когда вы добавляете аннотацию к чему-то, другие части программы могут проверить, есть ли что-то в аннотации или нет. Затем он может использовать эту информацию, чтобы делать все, что им нужно.
Позвольте мне привести несколько примеров:
Аннотации @Override
:
public class SuperClass {
public void someMethod () {
System.out.println ("Superclass!");
}
}
public class DerivedClass extends SuperClass {
@Override
public void someMethod () {
System.out.println ("Derived class!");
}
}
И когда вы это сделаете:
SuperClass sc = new DerivedClass ();
sc.someMethod ();
Он выполнит someMethod
в SuperClass
, правильно? Нет. Он напечатает "Производный класс!". Это связано с тем, что в производном классе существует эта @Override
вещь. Таким образом, производный класс переопределяет суперкласс someMethod
.
@SuppressWarnings
Аннотация:
Вот способ:
public void someMethod () {
int i;
}
Появится предупреждение о компиляторе, в котором говорится, что i
никогда не используется. Таким образом, вы можете добавить @SuppressWarnings
к методу для подавления предупреждения:
@SuppressWarnings ("unused")
public void someMethod () {
int i;
}
Обратите внимание, что есть параметр для аннотации @SuppressWarnings
. Некоторые аннотации имеют параметры, и вы можете искать их в javadoc. Но для тех, у кого нет параметров, вам не нужно добавлять ()
как метод.
Вы также можете объявить свои собственные аннотации и использовать отражение, чтобы проверить их. Вышеуказанные 2 аннотации будут проверяться компилятором.