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中的方法相关推荐

  1. php引用公有类方法_php利用ReflectionClass反射机制获取类public公有方法

    今天遇到了一个有趣的问题,在thinkphp中设定控制器路由的时候,必须要使用getfunc postfunc 如图: 而我不想要 get post 这些前缀 在php中通过反射机制获取类的方法,然后 ...

  2. 反射机制——获取Class中的构造函数

    2019独角兽企业重金招聘Python工程师标准>>> 一.通过反射实例化无参对象 /**** * @Title: createNewObject * @Description: 反 ...

  3. 【反射机制】Java中的反射机制,使用反射机制创建对象、访问属性、方法、构造方法等

    这篇文章主要是整理了Java中的反射机制,包括:反射机制概念.反射机制访问构造方法.反射机制访问普通方法.反射机制访问属性,反射机制访问修饰符. 目录 一.反射机制概念 二.反射机制使用 (1)加载C ...

  4. Java反射机制——获取成员变量构造函数

    2019独角兽企业重金招聘Python工程师标准>>> Java反射机制--获取成员变量&构造函数 一.成员变量是java.lang.reflect.Field的对象 1.F ...

  5. java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)

    Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...

  6. kettle job如何利用java的反射机制获取执行的sql语句

    kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制 ...

  7. android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解

    android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ...

  8. 利用反射机制获取未知类型的枚举的信息

    原文:利用反射机制获取未知类型的枚举的信息 开发游戏设置选项遇到一个问题,我有两个枚举,一个是屏幕分辨率,一个是语言 我需要在不知道一个枚举到底是哪一个枚举类型的情况下,获取这个枚举的值以及这个枚举类 ...

  9. java 反射获取对象_使用Java反射机制获取对象

    本文由广州疯狂软件教育java培训分享: 构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了! package interf; public interface Person ...

  10. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 动态拦截函数 | 动态获取 MetaClass 中的方法 | evaluate 方法执行Groovy脚本 )

    文章目录 一.基础示例 二.根据字符串动态获取 MetaClass 中的方法 二.使用 evaluate 执行字符串形式的 Groovy 脚本 二.完整代码示例 一.基础示例 定义类 Student ...

最新文章

  1. GAN性能不稳?这九大技术可“镇住”四类缺陷
  2. Spring管理Strust的Action
  3. 语音标注自动音段对齐工具SPPAS使用笔记
  4. 前端那些事之layui篇---实现栅格功能
  5. 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
  6. Spring 实践:AOP
  7. Docker-machine创建虚机时停在虚机启动的提示上,并且创建的虚机显示Ip Not found...
  8. spring集成struts2
  9. centos7下使用git
  10. HDinsight 系列-使用证书登陆中国区Azure
  11. 面向对象之: 类空间问题及类之间的关系
  12. urllib常用小记
  13. keychron k8 连接切换蓝牙方案
  14. log4j不生成日志文件的问题
  15. 共享该文件当前不能用户此计算机,局域网共享常见问题解决汇集
  16. Framework类库
  17. 解决PMML namespace URI httpwww.dmg.orgPMML-4_4 is not supported
  18. JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\【完美解决方案】
  19. 小白也能开始VCS+Verdi的旅程
  20. WPF AirSpace 空域问题解决方案

热门文章

  1. 在windows server上配置java jdk后,可能要些时间生效。
  2. cocos2dx截整屏、截部分屏
  3. WF4读书笔记(一):创建一个简单的工作流
  4. 大公司还是小公司[zz]
  5. 如何降低软件项目的风险 -- 包括客户的风险,软件提供商的风险
  6. Dev--Config Files
  7. Double binary trees
  8. MSIL实用指南-struct的生成和操作
  9. 并发编程 - io模型 - 总结
  10. 线段树相关(研究总结,线段树)