Java Class类 getMethod()方法及示例

Class类getMethod()方法

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

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

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

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

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

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

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

语法:

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

参数:

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

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

返回值:

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

示例

// Java program to demonstrate the example 
//方法getMethod(String method_name,Class ... paramType) 
//类的方法 

import java.lang.reflect.*;

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

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

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

        //调用无参数方法
        Method no_argument_method = cl.getMethod("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.getMethod("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 GetMethodOfClass.argumentMethod(java.lang.Integer,java.lang.Float)