反射机制——获取Class中的方法
2019独角兽企业重金招聘Python工程师标准>>>
一、代码说明
1、获取指定class文件中的公共方法
/*** @throws Exception ** @Title: getMethodDemo * @Description: 获取指定class文件中的公共方法* @param * @return void* @throws */private static void getMethodDemo() throws Exception {String name = "com.lh.reflection.bean.Person";// 寻找该类名称字节码文件 ,并加载至内存,生成Class对象Class<Person> clazz = (Class<Person>) Class.forName(name);Method[] methods = clazz.getMethods();//获取的都是公有的方法methods = clazz.getDeclaredMethods();//获取的是本类的所有方法,包含私有方法for(Method mehtod: methods){System.out.println(mehtod);}}
2、反射调用无参方法
/*** @throws Exception ** @Title: getMethodDemo2 * @Description: 反射调用无参方法* @param * @return void* @throws */private static void getMethodDemo2() throws Exception {String name = "com.lh.reflection.bean.Person";// 寻找该类名称字节码文件 ,并加载至内存,生成Class对象Class<Person> clazz = (Class<Person>) Class.forName(name);// Method method = clazz.getMethod("show",null);Method method = clazz.getMethod("show");// Person person = clazz.newInstance();Constructor<Person> constructor = clazz.getConstructor(String.class,int.class);Person person = constructor.newInstance("小明",20);// method.invoke(person,null);method.invoke(person);}
3、反射调用有参方法
/*** @throws Exception ** @Title: getMethodDemo3 * @Description: 反射调用有参方法* @param * @return void* @throws */private static void getMethodDemo3() throws Exception {String name = "com.lh.reflection.bean.Person";// 寻找该类名称字节码文件 ,并加载至内存,生成Class对象Class<Person> clazz = (Class<Person>) Class.forName(name);Method method = clazz.getMethod("paramMethod", String.class,int.class);Person person = clazz.newInstance();method.invoke(person, "小明",20);}
4、反射调用静态无参方法
/*** @throws Exception ** @Title: getMethodDemo4 * @Description: 反射调用静态无参方法* @param * @return void* @throws */private static void getMethodDemo4() throws Exception {String name = "com.lh.reflection.bean.Person";// 寻找该类名称字节码文件 ,并加载至内存,生成Class对象Class<Person> clazz = (Class<Person>) Class.forName(name);Method method = clazz.getMethod("staticMethod");Person person = clazz.newInstance();method.invoke(person);}
5、Person类
/**
* @Title: Person.java
* @Package com.lh.reflection.bean
* @Description: TODO
* @author Liu
* @date 2018年1月23日 下午3:06:10
* @version V1.0
*/
package com.lh.reflection.bean;/*** @ClassName: Person* @Description: Person实体类* @author Liu* @date 2018年1月23日 下午3:06:10* */
public class Person {private int age;private String name;public Person() {System.out.println("constructor no param run...");}public Person(String name,int age) {this.age = age;this.name = name;System.out.println("constructor with param run..." + this.name + ":" + this.age);}public void show() {System.out.println(name + "...show run..." + age);}private void privateMethod() {System.out.println("method run");}public void paramMethod(String str, int num) {System.out.println("paramMethod run..." + str + ":" + num);}public static void staticMethod() {System.out.println("static method run...");}}
转载于:https://my.oschina.net/Howard2016/blog/1612192
反射机制——获取Class中的方法相关推荐
- php引用公有类方法_php利用ReflectionClass反射机制获取类public公有方法
今天遇到了一个有趣的问题,在thinkphp中设定控制器路由的时候,必须要使用getfunc postfunc 如图: 而我不想要 get post 这些前缀 在php中通过反射机制获取类的方法,然后 ...
- 反射机制——获取Class中的构造函数
2019独角兽企业重金招聘Python工程师标准>>> 一.通过反射实例化无参对象 /**** * @Title: createNewObject * @Description: 反 ...
- 【反射机制】Java中的反射机制,使用反射机制创建对象、访问属性、方法、构造方法等
这篇文章主要是整理了Java中的反射机制,包括:反射机制概念.反射机制访问构造方法.反射机制访问普通方法.反射机制访问属性,反射机制访问修饰符. 目录 一.反射机制概念 二.反射机制使用 (1)加载C ...
- Java反射机制——获取成员变量构造函数
2019独角兽企业重金招聘Python工程师标准>>> Java反射机制--获取成员变量&构造函数 一.成员变量是java.lang.reflect.Field的对象 1.F ...
- java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...
- kettle job如何利用java的反射机制获取执行的sql语句
kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制 ...
- android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解
android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ...
- 利用反射机制获取未知类型的枚举的信息
原文:利用反射机制获取未知类型的枚举的信息 开发游戏设置选项遇到一个问题,我有两个枚举,一个是屏幕分辨率,一个是语言 我需要在不知道一个枚举到底是哪一个枚举类型的情况下,获取这个枚举的值以及这个枚举类 ...
- java 反射获取对象_使用Java反射机制获取对象
本文由广州疯狂软件教育java培训分享: 构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了! package interf; public interface Person ...
- 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 动态拦截函数 | 动态获取 MetaClass 中的方法 | evaluate 方法执行Groovy脚本 )
文章目录 一.基础示例 二.根据字符串动态获取 MetaClass 中的方法 二.使用 evaluate 执行字符串形式的 Groovy 脚本 二.完整代码示例 一.基础示例 定义类 Student ...
最新文章
- GAN性能不稳?这九大技术可“镇住”四类缺陷
- Spring管理Strust的Action
- 语音标注自动音段对齐工具SPPAS使用笔记
- 前端那些事之layui篇---实现栅格功能
- 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
- Spring 实践:AOP
- Docker-machine创建虚机时停在虚机启动的提示上,并且创建的虚机显示Ip Not found...
- spring集成struts2
- centos7下使用git
- HDinsight 系列-使用证书登陆中国区Azure
- 面向对象之: 类空间问题及类之间的关系
- urllib常用小记
- keychron k8 连接切换蓝牙方案
- log4j不生成日志文件的问题
- 共享该文件当前不能用户此计算机,局域网共享常见问题解决汇集
- Framework类库
- 解决PMML namespace URI httpwww.dmg.orgPMML-4_4 is not supported
- JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\【完美解决方案】
- 小白也能开始VCS+Verdi的旅程
- WPF AirSpace 空域问题解决方案