Java Class 类 getDeclaredMethod()方法及示例

Class类getDeclaredMethod()方法

  • getDeclaredMethod()方法在java.lang包中可用。

  • getDeclaredMethod()方法用于返回Method对象,这些对象指示给定的类的声明方法或由此Class对象表示的接口。

  • getDeclaredMethod()方法是一个非静态方法,只能使用类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • getDeclaredMethod()方法接受两个参数,第一个参数为“字符串”类型,第二个参数为“类”类型的数组。

  • getDeclaredMethod()方法在返回Method对象时可能会引发异常。

    • NoSuchMethodException:在此异常中,当指定方法不存在时。

    • SecurityException:在此异常中,当安全管理器存在时可能会引发此异常。

    • NullPointerException:在此异常中,如果给定的Method名称为null。

语法:

    public Method getDeclaredMethod (String method_name, Class ...paramType);

参数:

  • 字符串method_name –表示方法的名称。

  • Class ... paramType –表示“ Class”类型的参数数组。

返回值:

该方法的返回类型为Method,它返回该Class方法满足给定method_name和参数数组paramType的Method对象。

示例

//Java程序演示方法示例 
//getDeclaredMethod(字符串method_name,Class ... paramType)
//类的方法 

import java.lang.reflect.*;

public class GetDeclaredMethodOfClass {
    public static void main(String[] args) throws Exception {
        String str = new String();
        GetDeclaredMethodOfClass dc = new GetDeclaredMethodOfClass();

        //获取String的Class对象
        Class cl = str.getClass();

        //获取GetDeclaredMethodOfClass的Class对象
        Class dm = dc.getClass();

        //调用无参数方法
        Method no_argument_method = cl.getDeclaredMethod("length", null);
        System.out.println(" String Method = " + no_argument_method.toString());

        Class[] method_arguments = new Class[2];
        method_arguments[0] = Integer.class;
        method_arguments[1] = Float.class;

        //调用参数Method-
        Method argument_method = dm.getDeclaredMethod("argumentMethod", method_arguments);
        System.out.println("This Class Method = " + argument_method.toString());
    }

    public void argumentMethod(Integer i, Float f) {
        this.i = i;
        this.f = f;
    }

    public int i = 10;
    private float f = 10.2f;
}

输出结果

String Method = public int java.lang.String.length()
This Class Method = public void GetDeclaredMethodOfClass.argumentMethod(java.lang.Integer,java.lang.Float)