您的位置:首页 > 其它

类的解剖(获取类的定义信息)

2015-09-01 22:17 357 查看

获取类的方法:method

/**获取类中的方法的信息
* getMethods():获取当前类及其父类声明的public方法
* getDeclareMethods();获取当前类声明的所有方法,包括private和public
*/
private static void fetchMethods(String className) throws ClassNotFoundException {
Class c=Class.forName(className);
Method methods[]=c.getMethods();
//Method methods[]=c.getDeclaredMethods();
for(int i=0;i<methods.length;i++){
Method m=methods[i];
System.out.println("name= "+m.getName());//获得方法名
System.out.println("delaringClass= "+m.getDeclaringClass());//该方法类名
Class paramTypes[]=m.getParameterTypes();
for(int j=0;j<paramTypes.length;j++){
System.out.println("param#"+j+": "+paramTypes[j]);//方法参数数据类型
}
Class exception[]=m.getExceptionTypes();
for(int j=0;j<exception.length;j++){
System.out.println("exception#"+j+":"+exception[j]);

}
System.out.println("returnType= "+m.getReturnType());
System.out.println("-----------------------");
}
}




获取类的构造方法:Construct

/**
* 获取类中的方法的信息
* getConstructors(): 获取当前类的public构造方法
*
* getDeclaredConstructors() :获取当前类声明的所有构造方法,包括private等其它非public方法
* @throws ClassNotFoundException
*/
private static void fetchConstructors(String className) throws ClassNotFoundException {
Class c=Class.forName(className);
Constructor cons[]=c.getConstructors();
for(int i=0;i<cons.length;i++){
Constructor con=cons[i];
System.out.println("name= "+con.getName());
System.out.println("declaringClass= "+con.getDeclaringClass());
Class paramTypes[]=con.getParameterTypes();
for(int j=0;j<paramTypes.length;j++){
System.out.println("param# "+j+":"+paramTypes[j]);
}
Class exception[]=con.getExceptionTypes();
for(int j=0;j<exception.length;j++){
System.out.println("exception#"+j+":"+exception[j]);
}
System.out.println("--------------");
}
}




获取类的属性字段 Field

/**
* getFiled()   类对象
*
*
*/
private static void fetchFileds(String className) throws ClassNotFoundException {
Class c = Class.forName(className);
Field fields[] = c.getDeclaredFields();
for(int i=0;i<fields.length;i++){
Field fld = fields[i];
System.out.println("name= "+ fld.getName());
System.out.println("delaringClass= "+fld.getDeclaringClass());
System.out.println("type= "+ fld.getType());
int mod = fld.getModifiers();//语言修饰符private   static
//System.out.println("modifiers= "+ mod);
System.out.println("modifiers= "+ Modifier.toString(mod));
System.out.println("-----------");
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: