Java反射获取成员方法
来源:互联网 发布:淘宝主图尺寸怎么调整 编辑:程序博客网 时间:2024/05/22 21:14
【通过反射获取成员方法并使用】
获取所有方法
getMethods
getDeclaredMethods
Method[] methods = c.getMethods(); // 获取自己的包括父亲的公共方法
Method[] methods = c.getDeclaredMethods(); // 获取自己的所有的方法
for (Method method : methods) {
System.out.println(method);//打印出所有的方法
}
获取单个方法
getMethod
getDeclaredMethod
暴力访问
method.setAccessible(true);
获取单个方法并使用
获取字节码文件对象
Class c = Class.forName("cn.iponkan.Person");
通过无参构造方法创建对象
Constructor con = c.getConstructor();
Object obj = con.newInstance();
// 现在要获取Person类中public void show()方法
// public Method getMethod(String name,Class<?>... parameterTypes)
// 第一个参数表示的是方法名,第二个参数表示的是方法的参数的class类型
Method m1 = c.getMethod("show");
// obj.m1(); // 错误
// public Object invoke(Object obj,Object... args)
// 返回值是Object接收,第一个参数表示对象是谁,第二参数表示调用该方法的实际参数
m1.invoke(obj); // 调用obj对象的m1方法
//获取Person类中public void method(String s)方法
Method m2 = c.getMethod("method", String.class);
m2.invoke(obj, "hello");
// 获取Person类中public String getString(String s, int i)方法
Method m3 = c.getMethod("getString", String.class, int.class);
Object objString = m3.invoke(obj, "hello", 100);
//获取Person类 中 private void function()方法
Method m4 = c.getDeclaredMethod("function");
m4.setAccessible(true);//私有会出现暴力访问
m4.invoke(obj);
Person类的代码:
public class Person {private String name;int age;public String address;public Person() {}private Person(String name) {this.name = name;}Person(String name, int age) {this.name = name;this.age = age;}public Person(String name, int age, String address) {this.name = name;this.age = age;this.address = address;}public void show() {System.out.println("show");}public void method(String s) {System.out.println("method " + s);}public String getString(String s, int i) {return s + "---" + i;}private void function() {System.out.println("function");}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + ", address=" + address+ "]";}}
- Java反射获取成员方法
- java反射2-获取构造方法、成员变量、成员方法
- java 反射获取成员
- java反射之获取方法,成员变量,构造方法
- 通过Java反射机制获取对象、方法和成员变量
- java中通过反射获取成员方法并使用
- Java反射类工具获取成员的所有方法代码
- Java反射获取成员变量
- Java笔记——利用反射机制获取成员变量及成员方法
- Java学习提要——"反射"获取方法信息(成员函数、成员变量 、构造函数)
- 通过反射获取构造方法,成员变量及成员方法
- Java 反射获取方法
- Java反射获取方法
- java反射---获取类的成员变量
- Java通过反射来获取类的私有构造方法和成员方法
- 黑马程序员--03.反射--05【反射获取成员方法】
- java反射机制获取成员变量调用和调用实例方法的实现
- java 使用反射机制来获取私有方法和成员变量
- 心得小记之一领导想要长期做一件事情一定要将事情公开化
- 【算法】自适应辛普森(Simpson)算法详解
- 原型式继承
- 廖雪峰的Git教程六-撤销修改
- Sky数
- Java反射获取成员方法
- 廖雪峰Git教程七-删除文件
- nyoj-915-+-字符串
- CRM WebUI快键键一览~
- php设计模式——工厂方法设计模式
- Netty初次使用
- 顺序统计量(Order Statistic)小结
- 寄生式继承
- 深度学习入门(一) 机器学习的定义与方法