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)