package com.demo.day01;
import java.lang.reflect.Method;
public class ReflectMethod {
/**
* Method类代表某个类中的一个成员方法
* eg:画圆:circle.draw();
* 刹车:train.stop();
* 面向对象:把变量搞成私有的,如果谁要操作这个变量,那么这个变量在谁的身上,这个方法就在谁的身上(亦即专家模式:谁拥有数据,谁就是干这个数据的专家,那么这个方法就应该分配给谁)
*
*/
public static void main(String[] args) throws Exception {
String str = "abc";
//得到类中的某一个方法:用反射的方式得到字节码中的charAt方法,在用这个方法作用于某个对象
Method methodCharAt = String.class.getMethod("charAt", int.class);
//调用方法:
//1.通常方式:
System.out.println(str.charAt(2));
//2.反射方式:这是在str这个对象身上调用methodCharAt方法。invoke:调用,是方法对象(methodCharAt)身上的方法
System.out.println(methodCharAt.invoke(str, 2));
//如果传递给Method对象的invoke()方法的第一个参数为null,说明该Method对象对应的是一个静态方法
}
}
成员方法的反射
最新推荐文章于 2023-12-29 18:23:00 发布