Java getMethod() は、指定された Class オブジェクト参照に存在する指定されたパブリック メンバー関数の参照を保持する、パッケージ java.lang.reflect 内の Method クラスのインスタンスを返す java.lang.Class.getMethod() のメソッドです。クラスまたはインターフェイスに。このメソッドは、最初のパラメータとして渡す必要があるメソッドの名前を受け取ります。渡される 2 番目のパラメーターは、返されるメソッドの仮パラメーター データ型を決定する Class のオブジェクトの配列、または paramterType として null を決定する空の配列です。ここで使用される検索アルゴリズムは、プライベート GetPublicMethods() メソッドと同じです。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
getMethod() は、以下に示す 3 種類の例外をスローします:-
以下は java.lang.Class の getMethod の署名です
public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
例
以下のようなクラスデモがあるとします:
class Demo{ public void method1(String a){ System.out.println(a); } }
getMethod の呼び出しは次のようになります:
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() は、参照元のクラスまたはインターフェイス オブジェクト内の指定されたメソッドに Method インスタンスを返します。
メソッドが見つかった場合は、その参照を保持するメソッド クラスのインスタンスを返します。
指定されたメソッドに引数が必要ない場合は、parameterType の代わりに null が渡されます。これは、同じ名前で引数の数やデータ型が異なる複数のメソッドがあるメソッドのオーバーロードの場合に役立ちます。このメソッドは 3 種類の例外をスローします:-
1. NoSuchMethodException: このタイプの例外は、JVM がクラスまたはインターフェイスで指定された名前のメソッドを見つけられない場合にスローされます。
2. SecurityException: このタイプの例外は、
の場合にスローされます。3. NullPointerException: これは、引数のメソッド名の代わりに null が渡された場合にスローされます。
以下に挙げる例を示します:
この例では、Office クラスの 2 つのメソッドへの getMethod 呼び出しの出力を示します。1 つはオブジェクトを必要とし、もう 1 つは引数を必要としません。
//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()); } } }
出力:
この例では、JVM が指定された名前のクラスであるプライベート メソッドを見つけることができるかどうかを確認します。
//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"; }
出力:
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.
以上がJava getMethod()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。