1、forName 方法

forName是一个静态方法,其作用:通过调用来获取类名对应的Class对象,同时将Class对象加载进来。

如果将类名保存在字符串(如xml)中,就可以在程序运行时,动态调用加载。

注意:只有调用的参数是类名或者方法时,才可用。

2、newInstance()方法

作用:将对象实例化。返回类型为Object。与new的区别在于,new可以带参,而newInstance()不可以,一边初始化无参类。通常与forName()配合使用。

String str = "java.util.Date";
Class cl1= Class.forName(str);//加载java.util.Date类
Object obj = cl1.newInstance();//实例化cl1

3、getMethod()方法
  getMethod方法与getField方法类似,getField方法根据表示域名的字符串,返回一个Field对象。而getMethod方法则根据方法名称和相关参数,来定位需要查找的Method对象并返回。

getMethod与getDeclareMethods方法的区别在于,后者返回一个Method对象数组,需要自己在结果中查找所需Method对象。

原型: Method getMethod(String name,Class...parameterTypes)

参数解释:name: method的名称

parameterTypes:method的参数类型的列表(参数顺序需按声明method时的参数列表排列)

返回:符合method名称和参数的method对象

抛出错误:NoSuchMethodException

原因:没有找到所要查询的Method对象  或  Method名称为“<init>”或“<clinit>”

NullPointerException

原因:所要查询的Method对象的名称为null

SecurityException

原因:调用的类或其父类没有调用权限

例:

Method m1 = Employee.class.getMethod("getName");
Method m2 = Employee.class.getMethod("raiseSalary",double.class);

上面例子分别获得了Employee类的getName方法和raiseSalary方法的 方法指针m1,m2。

4、invoke方法

作用:调用包装在当前Method对象中的方法。

原型:Object invoke(Object obj,Object...args)

参数解释:obj:实例化后的对象

args:用于方法调用的参数

返回:根据obj和args调用的方法的返回值

抛出错误:IllegalAccessException

原因:Method对象强制Java语言执行控制 或 无权访问obj对象

IllegalArgumentException

原因:方法是实例化方法,而指定需要调用的对象并不是实例化后的类或接口

例:

      Class l = Class.forName("test1.A"); Object obj1 = l.newInstance(); Object[] obj2 = new Object[1];obj2[0] = new String("hello world"); Method m = l.getMethod("a1",new Class[] { String.class });Object obj3 = m.invoke(obj1, obj2);  

Java getMethod与invoke的使用相关推荐

  1. java中的invoke方法_详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...

  2. Java动态代理invoke方法自动执行的原因

    Java动态代理invoke方法自动执行的原因 在动态代理中,一般的是先调用Proxy.newProxyInstance()生成代理对象,然后通过调用代理对象的对应方法来实现增强,这里假设代理了被代理 ...

  3. java getxxx_java的invoke与getMethod方法用法

    和listener一起使用举例: 需要在控件中监听某个动作:比如button点击,画面滚动等 1.为控件定义一个属性:属性绑定一个方法 xxxProperty ="onPropertyXxx ...

  4. java反射 getMethod_JAVA 反射 getMethod() 和 invoke() 具体应用

    最近有一个有很多输入框的JSP页面,在页面上 input name 都是有规律的命名,在提交到后台时,通过JAVA反射机制可以减少不少代码量,特此记录一下实现! JSP页面大概如下: 全程陪诊后续价格 ...

  5. java反射getmethod用法_Java反射之 getMethod() 与invoke的使用

    1.forName 方法 forName是一个静态方法,其作用:通过调用来获取类名对应的Class对象,同时将Class对象加载进来. 如果将类名保存在字符串(如xml)中,就可以在程序运行时,动态调 ...

  6. java getmethod类_Java getMethod类型参数

    public class DynamicInvoker { public static void main(String[] args) { // TODO Auto-generated method ...

  7. java getmethod 无参数_Java getMethod类型参数

    public class DynamicInvoker { public static void main(String[] args) { // TODO Auto-generated method ...

  8. java getmethod int_Method getMethod

    Method getMethod(String name, Class>... parameterTypes) --返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定 ...

  9. java getmethod 使用_java – 使用子类作为方法参数调用getMethod

    是否可以调用一个方法,其中参数对象或参数类是一个子类,并且该方法本身将超类作为参数? 我试图调用这个方法public void setNewProblem(Problem problem);具体实现了 ...

最新文章

  1. Idea Debug调试介绍
  2. 卷积神经网络迁移学习
  3. [收藏]61条面向对象设计的经验原则
  4. 【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观
  5. DebugOutputString 使用
  6. Vue 计算属性与侦听器
  7. 【AI视野·今日NLP 自然语言处理论文速览 第二十四期】Thu, 30 Sep 2021
  8. Linux:rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2
  9. c语言分治法求众数重数_分治法求众数 - osc_twlari2q的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. 限速访问文件服务器,利用nginx实现文档服务器限速
  11. notion自建服务器,最详细的NOTION功能模块列表
  12. metaspolit教程
  13. 在Windos上安装Nginx
  14. ngrok转发mysql连接_使用小米球 -Ngrok 实现内网转发
  15. Python解答蓝桥杯省赛真题之从入门到真题
  16. 区块链“搅局”中介风云
  17. IT名企面试:微软笔试题
  18. seo与sem的区别与联系(大全篇)
  19. Herman miller Aeron 一代 气压杆(气压棒,气柱)更换笔记(电脑椅中的劳斯莱斯)
  20. 敏捷项目的史诗与迭代

热门文章

  1. Numpy矩阵乘积函数(dot)运算规则解析
  2. 爬取《雪中悍刀行》小说txt
  3. 全国大学生物联网设计竞赛圆满落幕|乐鑫 ESP32-S3 释放边缘 AI 潜力
  4. docker(二十二):docker加速器配置
  5. 服务器修改referer,electron自定义header伪装ua及referer欺骗远程服务器
  6. Android 自定义view onMeasure() 方法剖析
  7. JAVA dump查看线程运行情况
  8. 详解Wifi模块对智能家居行业产生的影响
  9. 索引原理:联合索引(最左前缀原则)
  10. python实现pca降维_Python实现PCA降维