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)