类Method:提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。

 

A:获取所有方法 数组

  1、getMethods  获取该类包括其父类的公共成员方法

  2、getDeclaredMethods  获取该类的所有的成员方法

B:获取单个方法

  1、getMethod 获取该类所有的公共类单个成员方法

  2、getDeclaredMethod 获取该类所有类型的单个成员方法

A.1:获取该类包括其父类的公共成员方法 

        //获取字节码文件
Class c = Class.forName("zl_Relfect_01.Person"); //获得该类与父类的所有的公共成员方法
Method[] m1 = c.getMethods();
for(Method m : m1){
System.out.println(m);
}

A.2:getDeclaredMethods  获取该类的所有的成员方法

         //获取字节码文件
Class c = Class.forName("zl_Relfect_01.Person");
//获取该类的所有类型的成员方法
Method[] m1 = c.getDeclaredMethods();
for(Method m : m1){
System.out.println(m);
}

B:获取单个成员方法:

         //获取字节码文件
Class c = Class.forName("zl_Relfect_01.Person");
     //无参构造创建对象
Constructor con = c.getConstructor();
Object obj = con.newInstance(); //获取该类单个无参无返回值公共类型的成员方法
//无参的成员方法,只需写成员方法的名称
Method m1 = c.getMethod("show");
// public Object invoke(Object obj,Object... args) 返回值是Object接收,第一个参数表示对象是谁,第二参数表示调用该方法的实际参数
//show是无参,无返回值构造
m1.invoke(obj);//调用Person类的show方法 //获取该类单个有参有返回值公共类型的成员方法
Method m2 = c.getMethod("method", String.class);
//没有返回值
m2.invoke(obj, "哈喽");////调用Person类的method方法 //获取该类单个有参有返回值公共类型的成员方法
Method m3 = c.getMethod("getString", String.class,int.class);
//有返回值, public Object invoke(Object obj,Object... args) 返回值是Object接收
Object ob1 = m3.invoke(obj, "哈喽",123);
System.out.println(ob1); //获取该类单个 无参无返回值的私有成员方法
Method m4 = c.getDeclaredMethod("function");
//取消语言访问检查
m4.setAccessible(true);
//调用Person类的function方法
m4.invoke(obj);

最新文章

  1. sql where传入类型不同,造成查询结果差异问题
  2. Linux文件系统层次结构标准
  3. iOS 解决表单被键盘遮住的问题
  4. Restrict each user to a single session in window server 2008 R2 or 2012
  5. Android 使用动态加载框架DL进行插件化开发
  6. Qt MinGW 使用联合编译IncrediBuild
  7. MyEclipse build path no actions available
  8. 模拟生产搭建Standby RAC实验环境(11.2.0.4 DG)
  9. JMeter脚本录制
  10. angular ng build --prod 打包报错解决方案
  11. 在阿里云服务器中用IP连接SQLserver2014提示40,53错误
  12. Scrapy 框架流程详解
  13. JS 循环定时的一些思考
  14. Mysql学习路线
  15. Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?
  16. 【Alpha】Scrum Meeting 5
  17. limits.conf文件修改注意事项
  18. android 图片大小适配,如何在不同屏幕上适配图片,如何设置可以自适应不同分辨率?
  19. BZOJ1935: [Shoi2007]Tree 园丁的烦恼(树状数组 二维数点)
  20. RobotFramework基本用法(二)

热门文章

  1. Java学习心得之 Linux下搭建JavaWeb环境
  2. [Android]使用AdapterTypeRender对不同类型的item数据到UI的渲染
  3. Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
  4. VSS、RSS、PSS、USS
  5. Android+PHP服务器+MySQL实现安卓端的登录
  6. Android jni简便开发流程
  7. AFNetworking 3.0.4 的使用
  8. 分享2个网址二维码API接口
  9. 用css3绘制你需要的几何图形
  10. js平滑返回顶部代码