通过反射调用类中的方法
来源:互联网 发布:红颜手札何人知酒 编辑:程序博客网 时间:2024/05/15 15:10
通过反射调用类中的方法:
1.通过Class类的getMethod(String name,Class...parameterTypes)方法取得一个Method对象,并设置此方法操作时所需要的参数类型。
2.之后可以使用invoke()进行调用,并向方法中传递要设置的参数。
无参方法的调用:调用Person类中的sayChina()方法:
package org.lxh.demo15.classinfodemo ;interface China{// 定义China接口public static final String NATIONAL = "China" ;// 定义全局常量public static final String AUTHOR = "李兴华" ;// 定义全局常量public void sayChina() ;// 无参的,没有返回值的方法public String sayHello(String name,int age) ;// 定义有两个参数的方法,并返回内容}public class Person implements China{private String name ;private int age ;public Person(){// 无参构造}public Person(String name){this.name = name ;// 设置name属性}public Person(String name,int age){this(name) ;this.age = age ;}public void sayChina(){// 覆写方法System.out.println("作者:" + AUTHOR + ",国籍:" + NATIONAL) ;}public String sayHello(String name,int age){return name + ",你好!我今年:" + age + "岁了!" ;}public void setName(String name){this.name = name ;}public void setAge(int age){this.age = age ;}public String getName(){return this.name ;}public int getAge(){return this.age ;}};
package org.lxh.demo15.classinfodemo ;import java.lang.reflect.Method ;public class InvokeSayChinaDemo{public static void main(String args[]){Class<?> c1 = null ;try{c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ;// 实例化Class对象}catch(Exception e){}try{Method met = c1.getMethod("sayChina") ;// 找到sayChina()方法met.invoke(c1.newInstance()) ;// 调用方法}catch(Exception e){e.printStackTrace() ;}}};运行结果:
作者:李兴华,国籍:China
有参方法的调用:调用Person类中的sayHello()方法
package org.lxh.demo15.classinfodemo;import java.lang.reflect.Method ;public class InvokeSayHelloDemo{public static void main(String args[]){Class<?> c1 = null ;try{c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ;// 实例化Class对象}catch(Exception e){}try{Method met = c1.getMethod("sayHello",String.class,int.class) ;// 找到sayChina()方法String rv = null ;rv = (String)met.invoke(c1.newInstance(),"李兴华",30) ;// 调用方法System.out.println(rv) ;}catch(Exception e){e.printStackTrace() ;}}};运行结果:
李兴华,你好!我今年:30岁了!
0 0
- 通过反射调用类中的方法
- 通过反射调用类中的方法
- 通过反射调用其他类中的方法
- 通过JAVA的反射调用类中的公有私有方法
- 如何通过反射调用类中的<泛型>方法
- 通过反射调用Dll中的方法
- 反射深入 通过反射中的Consrtuctor类调用有参构造方法 普通方法Method
- 如何通过反射来调用类方法
- 通过反射调用类内部的方法
- 通过反射调用类里面的方法
- 通过反射调用动态连接库中的方法
- 如何通过反射调用方法?
- 通过Java反射调用方法
- 通过Java反射调用方法
- 通过Java反射调用方法
- 通过Java反射调用方法
- 通过Java反射调用方法
- 通过Java反射调用方法
- 最强 Android Studio 使用小技巧和快捷键
- 游戏测试------------第5章
- txt文件中存储多行标题+空格+作者名,现按格式“标题+|+作者”的形式输出
- 解析ASP.net身份验证——选择验证方式
- 27. Remove Element
- 通过反射调用类中的方法
- cesiumjs开发实践 (三)
- nginx配置
- mysql设置utf8
- RTMPdump(libRTMP) 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)
- 欢迎使用CSDN-markdown编辑器
- selenium 处理 一个页面两个相同id的定位
- Ajax获取显示Json数据的一种方法
- 2016/07/18 HTML学习笔记