JAVA反射系列之Method,java.lang.reflect.Method的使用。
2019独角兽企业重金招聘Python工程师标准>>>
最近写项目,用反射的比较多,写一个总结,以便查阅。
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,哈,欢迎大家一起探讨。
转载于:https://my.oschina.net/u/1407116/blog/209417
JAVA反射系列之Method,java.lang.reflect.Method的使用。相关推荐
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
2019独角兽企业重金招聘Python工程师标准>>> 首先必须明一点 Field类主要是用来辅助获取和操作类的属性的! 1.怎么通过反射获取类的属性 先来看JDK提供的方法有如下几 ...
- JAVA反射系列之Method,java.lang.reflect.Method的使用
摘要: ava.lang.reflect.Method的基本使用. 最近写项目,用反射的比较多,写一个总结,以便查阅. Method是反射最基本的一个类. 直接上代码: [java] view pla ...
- 注解和反射详细笔记。自定义注解,元注解,内置注解。反射机制,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语言的反 ...
最新文章
- IO流 带行号的缓冲区
- 日调用量超三十万亿,腾讯开源百万级服务发现和治理中心北极星
- php数据库额外属性,PHP神秘的额外数据库插入
- go gorm框架一对多查询代码示例
- [转载] 七龙珠第一部——第063话 悟空大反击
- Struts2的Action配置的各项默认值
- C语言 memcpy函数(增加dst 从第一字节拷贝判断)的内部简单实现方式
- Linux学习-YUM 在线升级机制
- OOP_面向对象程序设计概述
- Arturia DX7 V for Mac(模拟FM数字合成器)
- Python代码: 把几个PDF文件拼接为一个 Merge PDF files
- JLink的JTag和SWD引脚定义及接线说明
- 网址导航7654推广
- ecshop与shopex哪个更好?
- 神秘海域:顶级工作室“顽皮狗”成长史(上)
- 安全站点导航(感谢backlion整理)
- 计算机组成原理编码键盘实验报告,计算机组成原理实验报告–杨睿.doc
- Thinkpad T460更换固态硬盘
- 专用神经网络处理器的芯片,cpu可以跑神经网络吗
- 【建议收藏】20个Python非常有用的单行代码