В java, что означает символ @?

Я знаю, что это значит в комментарии для документации, но вне этого, что это значит? (Обычно я бы просто сказал Google, но каждый символ без буквы отображается в результатах)

Ответы

Ответ 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 аннотации будут проверяться компилятором.

Ответ 2

Знак @используется для указания аннотации Java.

https://en.wikipedia.org/wiki/Java_annotation

Есть встроенная аннотация Java и пользовательская пользовательская аннотация.

Аннотации используются различными способами, такими как подавление предупреждения, связывание метода с URI (Servlet), связывание переменных с ресурсом (JNDI) и т.д.

Ответ 3

Символ @используется для аннотаций. По моему опыту, наиболее распространенной аннотацией является @Override, которая указывает, что метод объявлен в суперклассе. Другие общие аннотации @Deprecated, указывающие, что метод больше не должен использоваться, но все еще существует для обратной совместимости, и @SupressWarnings, чтобы предотвратить появление предупреждений в компиляторе.

Обратите внимание, что на самом деле можно получить аннотации, которые не включены в основные библиотеки Java, и объявить собственные аннотации.

Ответ 4

Как и некоторые другие, это аннотация Java. Это помогает компилятору проверить ваш код и уведомить программиста.

Очень простой пример кода:

public class SomeClass {

    @Override
    public String toString() {
        return "SomeClass";
    }

    @Deprecated
    public void doSomeOperation() {
        // some operation...
    }
}

Аннотация из SomeClass#toString, которая @Override, помогает компилятору определить, что это переопределенная функция из неявного наследования класса Object.

Пока аннотация из SomeClass#doSomeOperation предупредит программиста, что сама функция устарела и ее следует избегать.

Ответ 5

Аннотации предназначены для чтения или компилятора, а не для исполняемого кода.