您的位置:首页 > 编程语言 > Java开发

java反射获取类中 构造函数,方法,内部类

2013-01-11 00:00 453 查看
package com.Mario.Classtest;

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

public class classtest {

@SuppressWarnings("rawtypes")
public static void main(String[] args) {
// TODO Auto-generated method stub

// 打印类中 的详细信息;
try {
Class cc = Class.forName("com.Mario.Classtest.person");
// 获取构造函数
getConstructInfo(cc.getDeclaredConstructors());
// 获取方法
getMethodsInfo(cc.getDeclaredMethods());
// 获取内部类
getInerclassInfo(cc.getDeclaredClasses());

} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}

}

public static void getConstructInfo(
@SuppressWarnings("rawtypes") Constructor[] cons) {
System.out.println("构造函数");
for (Constructor<?> con : cons) {
// 打印修饰符
int mo = con.getModifiers();
System.out.print(Modifier.toString(mo));
// 打印构造函数名
System.out.print(" " + con.getName());
// 获取参数;
getParmsInfo(con.getParameterTypes());
System.out.println();
}
}

public static void getMethodsInfo(Method[] method) {

for (Method mt : method) {
int m = mt.getModifiers();
// 修饰符
System.out.print(Modifier.toString(m) + " ");
// 获取返回类型
System.out.print(mt.getReturnType());
System.out.print(" " + mt.getName());
getParmsInfo(mt.getParameterTypes());

}
}

public static void getParmsInfo(@SuppressWarnings("rawtypes") Class[] parm) {
System.out.print(" (");
for (Class<?> c : parm) {
System.out.print(c.getName() + " ");
}
System.out.print(")");
System.out.println();
}

public static void getInerclassInfo(
@SuppressWarnings("rawtypes") Class[] innerClass) {
System.out.println("内部类");
for (@SuppressWarnings("rawtypes")
Class c : innerClass) {
System.out.println(c.getName() + "{");
getMethodsInfo(c.getDeclaredMethods());
System.out.println("}");
}
}

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