使用java反射获取类中的方法

代码:

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectTest06 {

public static void main(String[] args) throws ClassNotFoundException {
Class c = Class.forName("cn.wuquejs.reflect.User");
//获取类中所有方法
Method[] method = c.getDeclaredMethods();

//反编译将User类中的方法打印
StringBuilder sb = new StringBuilder();
sb.append(Modifier.toString(c.getModifiers()) + " class " + c.getSimpleName() + "{\n");
for(Method m : method) {
sb.append("\t");
//方法的修饰符
sb.append(Modifier.toString(m.getModifiers()) + " ");
//方法的返回值类型
Class type = m.getReturnType();
sb.append(type.getSimpleName() + " ");
//方法名
sb.append(m.getName());
sb.append("(");
Class[] param = m.getParameterTypes();
for(int i=0; i<param.length; i++) {
if(i == param.length -1) {
sb.append(param[i].getSimpleName());
}else {
sb.append(param[i].getSimpleName());
sb.append(",");
}
}
sb.append(")");
sb.append("{}");
sb.append("\n");
}
sb.append("}");
System.out.println(sb.toString());
}

}

User类中的代码:

import java.util.Date;

public class User {

public void m1() {

}

public static void m2() {

}

public String m3() {
return "";
}

public void m4(int i, String s) {

}
}

运行结果:

代码分析:

  • 根据反编译获取到类

Class c = Class.forName("cn.wuquejs.reflect.User");

  • 获取到类中的所有方法
    Method[] method = c.getDeclaredMethods();
最后修改:2022 年 01 月 13 日 11 : 11 PM
如果觉得我的文章对你有用,请随意赞赏