// 获取字节码文件对象
Class c = Class.forName("cn.itcast_01.Person");
// 创建对象
Constructor con = c.getConstructor();
Object obj = con.newInstance();
// 获取方法
// Method[] methods = c.getMethods(); // 获取本类及其父类的所有公共方法
// Method[] methods = c.getDeclaredMethods(); // 获取本类的所有方法
// for (Method m : methods) {
// System.out.println(m);
// }
// 获取单独的方法
// 无返回值无参数
Method m = c.getMethod("show");
// obj.m();
//public Object invoke(Object obj,Object... args)
m.invoke(obj);
System.out.println("---------------------------");
//带参数无返回值
Method m2 = c.getMethod("print", String.class);
m2.invoke(obj,"hello");
System.out.println("---------------------------");
//带参数带返回值
Method m3 = c.getMethod("method", String.class,int.class);
Object o = m3.invoke(obj, "world",20);
System.out.println(o);
System.out.println("---------------------------");
//私有方法
Method m4 = c.getDeclaredMethod("function");
m4.setAccessible(true);
m4.invoke(obj);
1.获取当前方法的Method对象
1.得到class对象
1.类名.class
2.对象.getClass()
3.Class.forName(String className);
2.在Method类中有一个getAnnotation(String methodName...paramClass)
2.在Method类中有一个getAnnotation(Class annotationClass),可以获取一个注解对象
3.通过注解对象来调用其属性.
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。