web-dev-qa-db-fra.com

en Java, que signifie le symbole @?

Je sais ce que cela signifie dans un commentaire à des fins de documentation, mais en dehors de cela, ça veut dire quoi? (Je voudrais simplement google ceci mais chaque symbole non lettre apparaît dans les résultats)

25
ViceVersa666444

Le symbole @ désigne une annotation Java. Une annotation Java ajoute un attribut spécial à la variable, à la méthode, à la classe, à l'interface ou à d'autres éléments de langage. (Cela peut être configuré lorsque vous déclarez l'annotation) Lorsque vous ajoutez une annotation à quelque chose, les autres parties du programme peuvent vérifier si quelque chose a une annotation ou non. Il peut ensuite utiliser ces informations pour faire tout ce dont il a besoin.

Laisse moi te donner quelques exemples:

L'annotation @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!");
    }
}

Et quand tu fais ça:

SuperClass sc = new DerivedClass ();
sc.someMethod ();

Il exécutera la someMethod dans SuperClass, non? Non, cela affichera "Classe dérivée!". En effet, dans la classe dérivée, il y a ce @Override thingy. Donc, la classe dérivée remplace la variable someMethod de la super classe.

L'annotation @SuppressWarnings:

Voici une méthode:

public void someMethod () {
    int i;
}

Il y aura un avertissement du compilateur disant que i n'est jamais utilisé. Ainsi, vous pouvez ajouter le @SuppressWarnings à la méthode pour supprimer l'avertissement:

@SuppressWarnings ("unused")
public void someMethod () {
    int i;
}

Notez qu'il existe un paramètre pour l'annotation @SuppressWarnings. Certaines annotations ont des paramètres et vous pouvez les rechercher dans le javadoc. Mais pour ceux qui n'ont pas de paramètres, vous n'avez pas besoin d'ajouter () comme une méthode.

Vous pouvez également déclarer vos propres annotations et utiliser la réflexion pour les vérifier. Les 2 annotations ci-dessus seront vérifiées par le compilateur.

21
Sweeper

Le signe @ est utilisé pour spécifier l'annotation Java.

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

Il existe une annotation Java intégrée et une annotation personnalisée définie par l'utilisateur. 

Les annotations sont utilisées de différentes manières, telles que l'avertissement de suppression, la méthode associée à l'URI (Servlet), les variables associées à la ressource (JNDI), etc.

7
Abelard Chow

Le symbole @ est utilisé pour annotations . D'après mon expérience, l'annotation la plus courante est @Override, qui indique qu'une méthode est déclarée dans une superclasse. Les annotations courantes sont @Deprecated, indiquant qu'une méthode ne doit plus être utilisée mais existe toujours pour des raisons de compatibilité ascendante, et @SupressWarnings, afin d'éviter que des avertissements n'apparaissent dans le compilateur.

Notez qu'il est en fait possible d'obtenir des annotations qui ne sont pas incluses dans les bibliothèques Java principales et de déclarer vos propres annotations.

2
Charles Spencer

Comme d'autres le suggèrent, c'est l'annotation de Java. Cela aide le compilateur à valider votre code et à informer également le programmeur.

Exemple de code très simple:

public class SomeClass {

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

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

L'annotation de SomeClass#toString qui est @Override aide le compilateur à déterminer qu'il s'agit d'une fonction substituée de l'héritage implicite à la classe Object.

Alors que l'annotation de SomeClass#doSomeOperation avertira le programmeur que la fonction elle-même est déjà obsolète et qu'elle devrait être évitée.

0
mr5

Le symbole @ indique des annotations. Ils fournissent des informations sur une classe, son champ ou sa méthode (au-dessus desquels ils apparaissent). Ils ne peuvent pas effectuer d'opérations. Les compilateurs ou les processeurs d'annotation spéciaux utilisent ces informations pour rendre l'écriture de code moins détaillée.

Dans Java Persistence API, vous les utilisez pour mapper une classe Java avec des tables de base de données.

Par exemple @ Table () Utilisé pour mapper la classe Java particulière sur la table de base de dates.

@Entity Représente que la classe est une classe d'entité.

De même, vous pouvez utiliser plusieurs annotations pour mapper des colonnes individuelles, générer des identifiants, générer une version, des relations, etc.

0
Er. Mukesh Sharma