摘要: ava.lang.reflect.Method的基本使用。

最近写项目,用反射的比较多,写一个总结,以便查阅。

Method是反射最基本的一个类。

直接上代码:

[java] view plain copy
  1. /**
  2. * @ClassName: Test
  3. * @Description: 测试类
  4. * @author JoseanLuo
  5. * @date 2014-3-16 下午8:47:46
  6. * @version V1.0
  7. */
  8. public class Test {
  9. public String doRun(String pk,Student stu,String testrun)
  10. {
  11. return pk+stu+testrun;
  12. }
  13. }

测试

[java] view plain copy
  1. import java.lang.reflect.Method;
  2. /**
  3. * @ClassName: ReflectMethodTest
  4. * @Description: 反射方法测试
  5. * @author JoseanLuo
  6. * @date 2014-3-18 下午8:53:51
  7. * @version V1.0
  8. */
  9. public class ReflectMethodTest
  10. {
  11. public static void main(String[] args) throws Exception
  12. {
  13. Class clz=Class.forName("com.cx.test.Test");
  14. System.out.println(clz);
  15. Test test=(Test) clz.newInstance();
  16. Method mt=clz.getMethod("doRun", new Class[]{String.class,Student.class,String.class});
  17. System.out.println(mt);
  18. System.out.println(mt.invoke(test, new Object[]{"i love you ",null,"i fuck you",}));
  19. }
  20. }

忘记加student类了,看我别一篇文章吧。

想要调用一个类的方法。

首先要获得这个类Class

这里用的

[java] view plain copy
  1. Class.forName("com.cx.test.Test");

取得clz,

然后利用clz.

[java] view plain copy
  1. clz.getMethod("doRun", new Class[]{String.class,Student.class,String.class});

取得Method对象

这里后一个可以不传,此时调用的是名字的无参方法。如

[java] view plain copy
  1. clz.getMethod("doRun");

调用的是doRun()方法。

如果你要想获取的方法和你传的参数类型,个数不同就会出错(排除重载)

得到了你相要的方法对象之后。

你就能直接调用他了

[java] view plain copy
  1. mt.invoke(test, new Object[]{"i love you ",null,"i fuck you",})

注意:方法参数顺序,按方法接收参数顺序。

赶紧试一下吧。 想要更加高级的功能,多看API,哈,欢迎大家一起探讨。

JAVA反射系列之Method,java.lang.reflect.Method的使用相关推荐

  1. JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。

    2019独角兽企业重金招聘Python工程师标准>>> 首先必须明一点 Field类主要是用来辅助获取和操作类的属性的! 1.怎么通过反射获取类的属性 先来看JDK提供的方法有如下几 ...

  2. JAVA反射系列之Method,java.lang.reflect.Method的使用。

    2019独角兽企业重金招聘Python工程师标准>>> 最近写项目,用反射的比较多,写一个总结,以便查阅. Method是反射最基本的一个类. 直接上代码: /*** @ClassN ...

  3. 注解和反射详细笔记。自定义注解,元注解,内置注解。反射机制,Java Reflection,Java内存分析,反射操作注解,java.lang.reflect.Method,Class

    文章目录 注解 什么是注解 内置注解 元注解 自定义注解 反射机制 静态语言 vs 静态语言 Java Reflection 反射相关的主要API Class类 Java内存分析 创建运行时类的对象 ...

  4. Java反射之java.lang.reflect.Method

    前一篇文章讲了Class中的成员变量(java.lang.reflect.Field)的常用使用方式以及其注意事项.我们接着讲Class中的方法(java.lang.reflect.Method). ...

  5. 使用java.lang.reflect.Method.invoke抛出java.lang.IllegalArgumentException: argument type mismatch异常

    错误信息: java.lang.IllegalArgumentException: argument type mismatch     at sun.reflect.NativeMethodAcce ...

  6. Java反射系列--Type接口及其子接口

    原文网址:Java反射系列--Type接口及其子接口_IT利刃出鞘的博客-CSDN博客 简介 说明 Type 是java反射机制中提供的一个接口,用来表示java中的所有类型的接口.它们包括原始类型. ...

  7. Java 反射系列 —— 学习笔记

    Java 反射系列 1. 类成员 为了更好的描述,我们做个约定个通配符 XXXX, 如果是成员变量就代表 Field, 如果是类方法就代表 Method, 如果是构造器就代表 Constructor. ...

  8. Java 反射 (Class、ClassLoader、Constructor、Method、Field)

    反射是Java中一个非常重要.非常强大的机制.曾看到一句话"反射是框架的灵魂",初学时不懂,等到学完框架之后才慢慢理解其意. 什么是反射?我们先通过几个类和示例来初步体会一下反射. ...

  9. java 反射 Gc_深入浅析Java反射机制

    Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...

最新文章

  1. 损失函数约束类间不一致性
  2. 后端程序员必备的Linux基础知识
  3. wxWidgets:wxRichMessageDialog类用法
  4. RHCS配置web高可用集群
  5. Spring的配置文件详解
  6. 【数位DP】B-number(HDU 3652)
  7. 用Mockito回答
  8. 排序系列【比较排序系列之】直接插入排序
  9. 奶制品的生产lingo软件编辑
  10. CouchBase简单介绍
  11. JavaScript弹窗事件
  12. 英文书籍下载网站统计(进行中)
  13. 2017年节假日放假安排来了!
  14. pytorch accuracy和Loss 的计算
  15. it民工的华丽亦或是失败的转型(一)
  16. SpatialDropout
  17. JDK 1.7 基本概念和目录结构
  18. 解决Google浏览器首页被2345网站劫持
  19. switchport trunk native 的原理与作用
  20. tp5.1 集成支付宝支付方法(二)

热门文章

  1. Linux 多线程(一)线程概念:线程概念、线程与进程、线程间的独有与共享、多线程与多进程、线程控制
  2. Frida之安装和使用教程
  3. 音视频技术开发周刊 | 200
  4. LibAOM与AV1的最新研发进展
  5. Mozilla裁员波及Daala Codec团队
  6. 远程办公第五天,你还在扩容吗?
  7. 前端性能分析工具利器
  8. 可能是世界上最简单的用 Go 来写 WebAssembly 的教程
  9. 胡珀:从危到机,AI 时代下的安全挑战
  10. 正常情况下ffmpeg生成moov是在mdat写完成之后写入