首页 > 基础教程 > 反射 > 反射技术
Java通过反射机制获取某个类的全部方法
Java通过反射机制获取某个类的全部方法,步骤所用方法如下:
1. forName() 返回给定串名相应的Class对象。
2. getMethods() 返回当前Class对象表示的类或接口的所有公有成员方法对象数组,包括已声明的和从父类继承的方法。
3. getModifiers() 返回该类或接口的Java语言修改器代码。
4. getName() 返回Class对象表示的类型(类、接口、数组或基类型)的完整路径名字符串。
//获取某个类的全部方法
package net.xsoftlab.baike;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class TestReflect implements Serializable {
private static final long serialVersionUID = -2862585049955236662L;
public static void main(String[] args) throws Exception {
Class> clazz = Class.forName("net.xsoftlab.baike.TestReflect");
Method method[] = clazz.getMethods();
for (int i = 0; i < method.length; ++i) {
Class> returnType = method[i].getReturnType();
Class> para[] = method[i].getParameterTypes();
int temp = method[i].getModifiers();
System.out.print(Modifier.toString(temp) + " ");
System.out.print(returnType.getName() + " ");
System.out.print(method[i].getName() + " ");
System.out.print("(");
for (int j = 0; j < para.length; ++j) {
System.out.print(para[j].getName() + " " + "arg" + j);
if (j < para.length - 1) {
System.out.print(",");
}
}
Class> exce[] = method[i].getExceptionTypes();
if (exce.length > 0) {
System.out.print(") throws ");
for (int k = 0; k < exce.length; ++k) {
System.out.print(exce[k].getName() + " ");
if (k < exce.length - 1) {
System.out.print(",");
}
}
} else {
System.out.print(")");
}
System.out.println();
}
}
}
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。