java反射读取一个类
2014-01-14 14:30
169 查看
import java.util.*; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class ReflectionTest { @SuppressWarnings("unchecked") public static void main(String[] args){ String className ; Scanner in = new Scanner(System.in); className = in.next(); try { Class c = Class.forName(className); Class superc = c.getSuperclass(); String modifiers = Modifier.toString(c.getModifiers()); if(modifiers.length() > 0 ) System.out.print(modifiers + " "); System.out.print(c.getName() + " extends "); if(superc != null && superc != Object.class) System.out.println(superc.getName() + "{"); System.out.println(); printStructor(c); printMethod(c); printFields(c); } catch (Exception e) { } } @SuppressWarnings("unchecked") public static void printStructor(Class cl){ Constructor[] constructor = cl.getDeclaredConstructors(); for(Constructor c : constructor){ String name = c.getName(); String modifier = Modifier.toString(c.getModifiers()); System.out.print("\t" + modifier + " " + name + "("); Class[] paramType = c.getParameterTypes(); for(int i=0;i<paramType.length;i++){ if(i > 0){ System.out.print(","); } System.out.print(paramType[i].getName()); } System.out.println(");\n"); } } @SuppressWarnings("unchecked") public static void printMethod(Class cl){ Method[] method = cl.getDeclaredMethods(); for(Method m : method){ Class retType = m.getReturnType(); String modifier = Modifier.toString(cl.getModifiers()); String name = m.getName(); System.out.print("\t" + modifier + " " + retType.getName() + " " + name + "("); Class[] clazz = m.getParameterTypes(); for(int i=0;i<clazz.length;i++){ if(i > 0){ System.out.print(","); } System.out.print(clazz[i].getName()); } System.out.println(");\n"); } } public static void printFields(Class cl){ Field[] f = cl.getDeclaredFields(); for(int i=0;i<f.length;i++){ String modifier = Modifier.toString(f[i].getModifiers()); Class type = f[i].getType(); System.out.println("\t" + modifier + " " + type.getName() + " " + f[i].getName() + ";\n"); } System.out.println("}"); } }
相关文章推荐
- 一个简单的Java反射Demo
- Java中的反射机制 一个利用反射进行对象拷贝的例子
- JAVA多线程读取同一个文件,加速对文件内容的获取
- Java反射取得一个对象的信息
- java利用反射来调用一个类的私有方法和成员变量
- java中读取一个文件夹中全部文件名
- 利用反射实现一个Java文件书写多个Servlet,无框架
- 读取XML文件里其中一个结点的值(Java)
- javaOOP 读取硬盘上的一个文本文件
- 创建一个名为myinput.java的程序:包含从键盘读取 int、double、float、boolean、short、byte和string值的方法
- java读取文件封装的一个类(有部分代码借鉴别人的)
- 一个Java读取串口值的类
- 稀奇稀奇真稀奇--使用java Map读取neo4j数据碰到的一个困惑
- 庖丁解牛——Java反射解析一个类
- 用groovy简化java反射编写一个基于行数据对象的自动生成excel文件对象的工具
- Java反射技术二:利用反射打印一个类的构造函数、方法、域
- Java读取一个xml文件并生成相应的类
- 利用java反射原理写了一个简单赋值和取值通用类【改】
- XMLReader—一个可以读取XML文件的java类
- Java程序返回一个list类型而前台的的flex对其进行读取