Maison  >  Article  >  Java  >  Exemple de méthode pour obtenir le nom du paramètre dans Java 8

Exemple de méthode pour obtenir le nom du paramètre dans Java 8

高洛峰
高洛峰original
2017-01-22 11:03:342153parcourir

Avant-propos

Dans les versions antérieures à Java 8, une fois le code compilé dans un fichier de classe, les types de paramètres de méthode sont fixes, mais les noms de paramètres sont perdus, ce qui contraste fortement avec les langages dynamiques. qui dépendent fortement du contraste des noms de paramètres. Désormais, Java 8 commence à conserver les noms de paramètres dans les fichiers de classe, ce qui apporte une grande commodité à la réflexion.

Exemple :

public class GetRuntimeParameterName {
 
 public void createUser(String name, int age, int version) {
  //
 }
 
 public static void main(String[] args) throws Exception {
  for (Method m : GetRuntimeParameterName.class.getMethods()) {
   System.out.println("----------------------------------------");
   System.out.println(" method: " + m.getName());
   System.out.println(" return: " + m.getReturnType().getName());
   for (Parameter p : m.getParameters()) {
    System.out.println("parameter: " + p.getType().getName() + ", " + p.getName());
   }
  }
 }
}

Method.getParameters est une nouvelle méthode pour la version 1.8, qui peut obtenir des informations sur les paramètres, y compris les noms des paramètres.

Les paramètres createUser générés par le code ci-dessus sont les suivants :

method: createUser
 return: void
parameter: java.lang.String, name
parameter: int, age
parameter: int, version

Les noms de paramètres sont compilés dans le fichier de classe, remplaçant les arg0, arg1 dénués de sens. .. …

Pour de nombreux frameworks qui s'appuient sur des noms de paramètres, le code peut être encore simplifié :

@Path("/groups/:groupid/:userid")
public User getUser(String groupid, String userid) {
 ...
}

Lorsqu'il n'y a pas de noms de paramètres, les annotations doivent être ajouté :

@Path("/groups/:groupid/:userid")
public User getUser(@Param("groupid") String groupid, @Param("userid") String userid) {
 ...
}

Malheureusement, l'option permettant de conserver les noms de paramètres est activée par le commutateur de compilation javac -parameters et est désactivée par défaut.

Dans Eclipse, vous pouvez l'ouvrir via l'option Compilateur :

Java 8中如何获取参数名称的方法示例

Remarque : Cette fonction doit compiler le code dans la classe version 1.8.

Résumé

Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra être utile aux études ou au travail de chacun. Si vous avez des questions, vous pouvez partir. un message à communiquer.

Pour plus d'articles sur la façon d'obtenir les noms de paramètres dans Java 8, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn