利用java的反射机制写个小程序:传入类名打印出重写和重载的方法

来源:百度知道 编辑:UC知道 时间:2024/05/21 01:03:33
用Class.forName(String)传入变量得到类对象
直接打印出重写的方法和重载的方法

import java.lang.reflect.*;
import java.util.*;
class DumpMethods {
public static void main(String args[]) {

DumpMethods d=new DumpMethods();
d.getClassOverrideMethods("DEF");
d.getClassOverloadMethods("DEF");
}
public List getClassOverrideMethods(String classFilename){
List rewrite=new ArrayList();
Method[] m1=null,m2=null;
try{
Class nowClass=Class.forName(classFilename);
Class superClass=(Class)nowClass.getGenericSuperclass();
m1=nowClass.getDeclaredMethods();
m2=superClass.getDeclaredMethods();

} catch (Throwable e) {
System.err.println(e);
}
for(int i=0;i<m1.length;i++)
for(int j=0;j<m2.length;j++)
{

if( m1[i].getName().equals(m2[j].getName())) { rewrite.add(m1[i].toString());break;}

}

System.out.println("覆盖的方法");
for(int k=0;k<rewrite.size();k++)