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)