[Java基础]反射获取成员方法并使用
Posted Wecccccccc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java基础]反射获取成员方法并使用相关的知识,希望对你有一定的参考价值。
代码如下:
package ClassObjectPack01;
import ClassObjectPack.Student;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ReflectDemo05 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
Class<?> c = Class.forName("ClassObjectPack.Student");
//Method getMethod(String name, 类<?>... parameterTypes)
//返回一个 方法对象,它反映此表示的类或接口的指定公共成员方法 类对象。
//Method[] getMethods()
//返回包含一个数组 方法对象反射由此表示的类或接口的所有公共方法 类对象,包括那些由类或接口和那些从超类和超接口继承的声明。
//方法 getDeclaredMethod(String name, 类<?>... parameterTypes)
//返回一个 方法对象,它反映此表示的类或接口的指定声明的方法 类对象。
//方法[] getDeclaredMethods()
//返回包含一个数组 方法对象反射的类或接口的所有声明的方法,通过此表示 类对象,包括公共,保护,默认(包)访问和私有方法,但不包括继承的方法。
Method[] methods = c.getMethods();
for (Method method:methods)
{
System.out.println(method);
}
System.out.println("-----------------------------------------");
Method[] methods01 = c.getDeclaredMethods();
for (Method method:methods01)
{
System.out.println(method);
}
System.out.println("------------------------------------------");
Method m = c.getMethod("method1");
Constructor<?> con = c.getConstructor();
Object obj = con.newInstance();
//在类或接口上提供单一方法的信息和访问权限。
//Object invoke(Object obj, Object... args)
//在具有指定参数的 方法对象上调用此 方法对象表示的底层方法。
//object:返回值类型
//obj:调用方法的对象
//args:方法需要的参数
m.invoke(obj);
// Student s = new Student();
// s.method1();
}
}
测试结果:
以上是关于[Java基础]反射获取成员方法并使用的主要内容,如果未能解决你的问题,请参考以下文章
java学习--基础知识进阶第十三天--反射机制的概述和字节码对象的获取方式反射操作构造方法成员方法成员属性JavaBean的概述&BeanUtils的使用自定义BeanUtils工