Java getMethod() ist eine Methode in java.lang.Class.getMethod(), die eine Instanz der Method-Klasse im Paket java.lang.reflect zurückgibt, die die Referenz einer bestimmten öffentlichen Mitgliedsfunktion enthält, die in der angegebenen Klassenobjektreferenz vorhanden ist zu einer Klasse oder Schnittstelle. Diese Methode verwendet als ersten Parameter den Namen der zu übergebenden Methode. Der zweite zu übergebende Parameter ist ein Array von Objekten der Klasse „Class“, die die formalen Parameterdatentypen der zurückgegebenen Methode bestimmen, oder ein leeres Array, das „null“ als paramterTypes bestimmt. Der dabei verwendete Suchalgorithmus ist derselbe wie bei der privaten GetPublicMethods()-Methode.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
getMethod() löst drei Arten von Ausnahmen aus, wie unten angegeben:-
Unten ist die Signatur der getMethod von java.lang.Class
public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
Beispiele
Wenn wir eine Klassendemo wie unten angegeben haben:
class Demo{ public void method1(String a){ System.out.println(a); } }
Dann würde der Aufruf von getMethod wie folgt aussehen:
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() gibt eine Methodeninstanz an die angegebene Methode in der referenzierenden Klasse oder dem Schnittstellenobjekt zurück.
Falls es die Methode findet, gibt es eine Instanz der Methodenklasse zurück, die ihre Referenz enthält.
Wenn die angegebene Methode kein Argument benötigt, wird null anstelle von ParameterType übergeben. Dies hilft im Fall einer Methodenüberladung, bei der wir mehr als eine Methode mit demselben Namen haben, sich aber in der Anzahl oder den Datentypen der Argumente unterscheiden. Diese Methode löst drei Arten von Ausnahmen aus:-
1. NoSuchMethodException: Diese Art von Ausnahme wird ausgelöst, wenn JVM keine Methode mit dem angegebenen Namen in der Klasse oder Schnittstelle finden kann.
2. SecurityException: Diese Art von Ausnahme wird ausgelöst, wenn
3. NullPointerException: Dies wird ausgelöst, wenn in den Argumenten null anstelle des Methodennamens übergeben wird.
Im Folgenden finden Sie die genannten Beispiele:
In diesem Beispiel zeigen wir die Ausgabe eines getMethod-Aufrufs an zwei Methoden der Office-Klasse, eine, die Objekte erfordert, und die andere, die kein Argument benötigt.
//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()); } } }
Ausgabe:
In diesem Beispiel werden wir sehen, ob JVM in der Lage ist, private Methoden zu finden, die die Klasse mit dem angegebenen Namen sind.
//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"; }
Ausgabe:
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.
Das obige ist der detaillierte Inhalt vonJava getMethod(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!