位置:首页 > Java技术 > java.lang > java.lang.Class.getDeclaredMethod()方法实例

java.lang.Class.getDeclaredMethod()方法实例

java.lang.Class.getDeclaredMethod() 方法返回一个Method对象,它反映此Class对象所表示类或接口的指定已声明方法。 name参数是一个字符串,指定所需方法的简单名称,parameterTypes参数是识别方法的形参类型的Class对象的数组,在声明的顺序

声明

以下是java.lang.Class.getDeclaredMethod()方法的声明

public Method getDeclaredMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException

参数

  • name -- 这是该方法的名称

  • parameterTypes -- 这是参数数组。

返回值

此方法返回这个类的匹配指定名称和参数的方法的Method对象。

异常

  • NoSuchMethodException -- 如果没有找到匹配的方法。

  • NullPointerException -- 如 name 为空 null.

  • SecurityException -- 如果安全管理存在。

例子

下面的例子显示java.lang.Class.getDeclaredMethod()方法的使用。

package com.yiibai;

import java.lang.reflect.*;

public class ClassDemo {

   public static void main(String[] args) {
    
     ClassDemo cls = new ClassDemo();
     Class c = cls.getClass();

     try {          
        // parameter type is null
        Method m = c.getDeclaredMethod("show", null);
        System.out.println("method = " + m.toString()); 
    
        // method Integer
        Class[] cArg = new Class[1];
        cArg[0] = Integer.class;
        Method lMethod = c.getDeclaredMethod("showInteger", cArg);
        System.out.println("method = " + lMethod.toString());
     }
     catch(NoSuchMethodException e) {
        System.out.println(e.toString());
     }
   }

   private Integer show() {
      return 1;
   }
    
   public void showInteger(Integer i) {
      this.i = i;
   }
   public int i = 78655;
} 

让我们来编译和运行上面的程序,这将产生以下结果:

method = private java.lang.Integer ClassDemo.show()
method = public void ClassDemo.showInteger(java.lang.Integer