通过Java中的名称和参数类型获取声明的方法

可以使用java.lang.Class.getDeclaredMethod()方法通过名称和参数类型获取声明的方法。该方法采用两个参数,即方法的名称和方法的参数数组。

getDeclaredMethod()方法为该类的方法返回一个Method对象,该对象与该方法的名称和作为参数的参数数组相匹配。

给出一个通过名称和使用该getDeclaredMethod()方法的参数类型获取已声明方法的程序,如下所示:

示例

package Test;

import java.lang.reflect.*;

public class Demo {

   public String str;

   private Integer func1() {

      return 1;

   }

   public void func2(String str) {

      this.str = "Stars";

   }

   public static void main(String[] args) {

      Demo obj = new Demo();

      Class c = obj.getClass();

      try {

         Method m1 = c.getDeclaredMethod("func1", null);

         System.out.println("The method is: " + m1.toString());

         Class[] argument = new Class[1];

         argument[0] = String.class;

         Method m2 = c.getDeclaredMethod("func2", argument);

         System.out.println("The method is: " + m2.toString());

      }

      catch(NoSuchMethodException e){

         System.out.println(e.toString());

      }

   }

}

输出结果

The method is: private java.lang.Integer Test.Demo.func1()

The method is: public void Test.Demo.func2(java.lang.String)

现在让我们了解上面的程序。

在Demo类中,两个方法是func1()和func2()。演示这的代码片段如下-

public String str;

private Integer func1() {

   return 1;

}

public void func2(String str) {

   this.str = "Stars";

}

在该方法中main(),创建了Demo类的对象obj。然后getClass()用于获取c中的obj类。最后,该getDeclaredMethod()方法用于获取方法func1()和func2()并显示它们。演示这的代码片段如下-

Demo obj = new Demo();

Class c = obj.getClass();

try {

   Method m1 = c.getDeclaredMethod("func1", null);

   System.out.println("The method is: " + m1.toString());

   Class[] argument = new Class[1];

   argument[0] = String.class;

   Method m2 = c.getDeclaredMethod("func2", argument);

   System.out.println("The method is: " + m2.toString());

}

以上是 通过Java中的名称和参数类型获取声明的方法 的全部内容, 来源链接: utcz.com/z/338063.html

回到顶部