Java getMethod() est une méthode dans java.lang.Class.getMethod() qui renvoie une instance de la classe Method dans le package java.lang.reflect qui contient la référence d'une fonction membre publique donnée présente dans la référence d'objet Class donnée à une classe ou une interface. Cette méthode prend le nom de la méthode à transmettre comme premier paramètre. Le deuxième paramètre à transmettre est un tableau d'objets de Class qui déterminent les types de données de paramètres formels de la méthode renvoyée ou un tableau vide déterminant null comme paramterTypes. L'algorithme de recherche utilisé ici est le même que celui de la méthode privée GetPublicMethods().
PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
getMethod() génère 3 types d'exceptions comme indiqué ci-dessous :-
Ci-dessous se trouve la signature de la getMethod de java.lang.Class
public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
Exemples
Si nous avons une démo de classe comme indiqué ci-dessous :
class Demo{ public void method1(String a){ System.out.println(a); } }
Alors appeler pour getMethod serait comme :
Demo demoObj= new Demo();// Object of Demo class Class cObj= demoObj.getClass() Class [] carr = new Class[1]; carr[0] = String.class;// class reference to java.lang.String class stored In the array of type Class Method mObj = cObj.getMethod("method1",carr);
getMethod() renvoie une instance de méthode à la méthode spécifiée dans la classe de référencement ou l'objet d'interface.
S'il trouve la méthode, il renvoie une instance de Method Class contenant sa référence.
Si la méthode spécifiée n'a besoin d'aucun argument, alors null est passé à la place de paramètreType. Cela aide en cas de surcharge de méthode, où nous avons plusieurs méthodes portant le même nom mais différant par le nombre ou les types de données d'arguments. Cette méthode génère 3 types d'exceptions :-
1. NoSuchMethodException : ce type d'exception est levé lorsque JVM n'est en mesure de trouver aucune méthode portant le nom spécifié dans la classe ou l'interface.
2. SecurityException : ce type d'exception est généré lorsque
3. NullPointerException : ceci est levé si null est passé à la place du nom de la méthode dans les arguments.
Voici les exemples mentionnés :
Dans cet exemple, nous montrerons le résultat d'un appel getMethod à deux méthodes de la classe Office, l'une qui nécessite des objets et l'autre n'a pas besoin d'argument.
//package Proc; import java.lang.reflect.*; class Office{ public String OfficeLocation() { return location; } public String getEmpName(Integer eid) { return"Sergio"; } String location = "Bangalore"; } public class prac1 { public static void main(String[] args) { Office ofc = new Office(); Class cObj = ofc.getClass(); Class[] carr = new Class[1]; carr[0] = Integer.class; try { Method meth = cObj.getMethod("OfficeLocation", null); System.out.println("Method with specified name is = " + meth.toString()); } catch(NoSuchMethodException e) { System.out.println(e.toString()); } try { Method meth = cObj.getMethod("getEmpName", carr); System.out.println("Method with specified name is = " + meth.toString()); } catch(NoSuchMethodException e) { System.out.println(e.toString()); } } }
Sortie :
Dans cet exemple, nous verrons si JVM est capable de trouver des méthodes privées dans la classe portant le nom donné.
//package Proc; import java.lang.reflect.*; public class prac1 { public static void main(String[] args) { Office ofc = new Office(); Class cObj = ofc.getClass(); try { Method meth = cObj.getMethod("OfficeLocation", null); System.out.println("Method with specified name is = " + meth.toString()); } catch(NoSuchMethodException e) { System.out.println(e.toString()); } } } class Office{ private String OfficeLocation() { return location; } public String getEmpName(Integer eid) { return "Sergio"; } String location = "Bangalore"; }
Sortie :
In this example , we will see how different exceptions occur when a non-existing method is called, and null is passed in the method’s name.
//package Proc; import java.lang.reflect.*; class Office{ public String OfficeLocation() { return location; } public String getEmpName(Integer eid) { return "Sergio"; } String location = "Bangalore"; } public class prac1 { public static void main(String[] args) { Office ofc = new Office(); Class cObj = ofc.getClass(); Class[] carr = new Class[1]; carr[0] = Integer.class; try { Method meth = cObj.getMethod("show", null); System.out.println("Method found " + meth.toString()); } catch(NoSuchMethodException e) { System.out.println(e.toString()); } try { Method meth = cObj.getMethod(null, carr); System.out.println("Method found" + meth.toString()); } catch(NoSuchMethodException e) { System.out.println(e.toString()); }catch(NullPointerException e) { System.out.println(e.toString()); } } }
Output:
Java.lang.getMethod() is a method used to search if a method with the given name and type of arguments is present in the class or not. It uses the same algorithm to find the method used in the privateGetPublicMethods() method. JVM search for the given public method and returns a Method instance; otherwise, NoSuchMethodException is raised.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!