JAVA反射系列之Method,java.lang.reflect.Method的使用
摘要: ava.lang.reflect.Method的基本使用。
最近写项目,用反射的比较多,写一个总结,以便查阅。
Method是反射最基本的一个类。
直接上代码:
- /**
- * @ClassName: Test
- * @Description: 测试类
- * @author JoseanLuo
- * @date 2014-3-16 下午8:47:46
- * @version V1.0
- */
- public class Test {
- public String doRun(String pk,Student stu,String testrun)
- {
- return pk+stu+testrun;
- }
- }
测试
- import java.lang.reflect.Method;
- /**
- * @ClassName: ReflectMethodTest
- * @Description: 反射方法测试
- * @author JoseanLuo
- * @date 2014-3-18 下午8:53:51
- * @version V1.0
- */
- public class ReflectMethodTest
- {
- public static void main(String[] args) throws Exception
- {
- Class clz=Class.forName("com.cx.test.Test");
- System.out.println(clz);
- Test test=(Test) clz.newInstance();
- Method mt=clz.getMethod("doRun", new Class[]{String.class,Student.class,String.class});
- System.out.println(mt);
- System.out.println(mt.invoke(test, new Object[]{"i love you ",null,"i fuck you",}));
- }
- }
忘记加student类了,看我别一篇文章吧。
想要调用一个类的方法。
首先要获得这个类Class
这里用的
- Class.forName("com.cx.test.Test");
取得clz,
然后利用clz.
- clz.getMethod("doRun", new Class[]{String.class,Student.class,String.class});
取得Method对象
这里后一个可以不传,此时调用的是名字的无参方法。如
- clz.getMethod("doRun");
调用的是doRun()方法。
如果你要想获取的方法和你传的参数类型,个数不同就会出错(排除重载)
得到了你相要的方法对象之后。
你就能直接调用他了
- mt.invoke(test, new Object[]{"i love you ",null,"i fuck you",})
注意:方法参数顺序,按方法接收参数顺序。
赶紧试一下吧。 想要更加高级的功能,多看API,哈,欢迎大家一起探讨。
JAVA反射系列之Method,java.lang.reflect.Method的使用相关推荐
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
2019独角兽企业重金招聘Python工程师标准>>> 首先必须明一点 Field类主要是用来辅助获取和操作类的属性的! 1.怎么通过反射获取类的属性 先来看JDK提供的方法有如下几 ...
- JAVA反射系列之Method,java.lang.reflect.Method的使用。
2019独角兽企业重金招聘Python工程师标准>>> 最近写项目,用反射的比较多,写一个总结,以便查阅. Method是反射最基本的一个类. 直接上代码: /*** @ClassN ...
- 注解和反射详细笔记。自定义注解,元注解,内置注解。反射机制,Java Reflection,Java内存分析,反射操作注解,java.lang.reflect.Method,Class
文章目录 注解 什么是注解 内置注解 元注解 自定义注解 反射机制 静态语言 vs 静态语言 Java Reflection 反射相关的主要API Class类 Java内存分析 创建运行时类的对象 ...
- Java反射之java.lang.reflect.Method
前一篇文章讲了Class中的成员变量(java.lang.reflect.Field)的常用使用方式以及其注意事项.我们接着讲Class中的方法(java.lang.reflect.Method). ...
- 使用java.lang.reflect.Method.invoke抛出java.lang.IllegalArgumentException: argument type mismatch异常
错误信息: java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAcce ...
- Java反射系列--Type接口及其子接口
原文网址:Java反射系列--Type接口及其子接口_IT利刃出鞘的博客-CSDN博客 简介 说明 Type 是java反射机制中提供的一个接口,用来表示java中的所有类型的接口.它们包括原始类型. ...
- Java 反射系列 —— 学习笔记
Java 反射系列 1. 类成员 为了更好的描述,我们做个约定个通配符 XXXX, 如果是成员变量就代表 Field, 如果是类方法就代表 Method, 如果是构造器就代表 Constructor. ...
- Java 反射 (Class、ClassLoader、Constructor、Method、Field)
反射是Java中一个非常重要.非常强大的机制.曾看到一句话"反射是框架的灵魂",初学时不懂,等到学完框架之后才慢慢理解其意. 什么是反射?我们先通过几个类和示例来初步体会一下反射. ...
- java 反射 Gc_深入浅析Java反射机制
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...
最新文章
- 损失函数约束类间不一致性
- 后端程序员必备的Linux基础知识
- wxWidgets:wxRichMessageDialog类用法
- RHCS配置web高可用集群
- Spring的配置文件详解
- 【数位DP】B-number(HDU 3652)
- 用Mockito回答
- 排序系列【比较排序系列之】直接插入排序
- 奶制品的生产lingo软件编辑
- CouchBase简单介绍
- JavaScript弹窗事件
- 英文书籍下载网站统计(进行中)
- 2017年节假日放假安排来了!
- pytorch accuracy和Loss 的计算
- it民工的华丽亦或是失败的转型(一)
- SpatialDropout
- JDK 1.7 基本概念和目录结构
- 解决Google浏览器首页被2345网站劫持
- switchport trunk native 的原理与作用
- tp5.1 集成支付宝支付方法(二)