1.method的常用方法
1.1 以整数形式返回此 Method 对象所表示方法的 Java 语言修饰符。
int getModifiers()
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
int k = method1.getModifiers();
}
1.2 返回一个 Class 对象,该对象描述了此 Method 对象所表示的方法的正式返回类型。
Class<?> getReturnType()
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
Class c = method1.getReturnType();
}
1.3 以 String 形式返回此 Method 对象表示的方法名称。
String getName()
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
String s = method1.getName();
}
1.4 按照声明顺序返回 Class 对象的数组,这些对象描述了此 Method 对象所表示的方法的形参类型。
Class<?>[] getParameterTypes()
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
Class[] classes = method1.getParameterTypes();
}
1.5 返回 Class 对象的数组,这些对象描述了声明将此 Method 对象表示的底层方法抛出的异常类型。
Class<?>[] getExceptionTypes()
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
Class[] classes1 = method1.getExceptionTypes();
}
1.6 如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
<T extends Annotation> T getAnnotation(Class<T> annotationClass)
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
Annotation[] classes2 =method1.getAnnotations();
}
1.7 执行方法
当执行私有方法时,还需要设置method1.setAccessible(true);
Object invoke(Object obj, Object... args)
@Test
public void test1() throws Exception {
Class clazz = ArrayList.class;
Method method1 = clazz.getMethod("size");
Method method2 = clazz.getMethod("add",Object.class);
Object o = clazz.newInstance();
Object o1 = method1.invoke(o);
Object o2 = method2.invoke(o,"add");
}