package com.szl.ttex03;
import java.lang.reflect.Method;
/**
* Created with IntelliJ IDEA.
* Description:获取方法和调用方法
* User: dell
* Date: 2022-07-27
* Time: 14:32
*/
public class Test03 {
public static void main(String[] args) throws Exception {
Class<Student> cls = Student.class;
//获取方法
//getMethods获取运行时类的和所有父类的方法(被public修饰的)
Method[] met = cls.getMethods();
for(Method m:met) {
System.out.println(m);
}
System.out.println("---");
//getDeclaredMethods获取运行时类的所有方法,获取不了父类的
Method[] met2 = cls.getDeclaredMethods();
for(Method m:met2) {
System.out.println(m);
}
System.out.println("---");
//获取指定的
Method sh = cls.getMethod("showInfo");
System.out.println(sh);
Method sh2 = cls.getMethod("showInfo", int.class, int.class);
System.out.println(sh2);
Method sh3 = cls.getDeclaredMethod("work",int.class);
System.out.println(sh3);
System.out.println("---");
//获取方法的具体结构
//调用方法
Method myMethod = cls.getMethod("myMethod");
Object obj = cls.newInstance();
myMethod.invoke(obj);
System.out.println(sh2.invoke(obj, 5, 6));
}
通过字节码获取方法调用方法
最新推荐文章于 2023-04-10 13:00:00 发布