java的类Class提供的方法可以直接根据类名得到类的所有相关信息,包括类所在的包,父类、成员以及方法,下面的源代码得到的是类的成员的类型以及名称,你可以查看Class的文档得到类的其它信息的方法,根据这个,我们可以构造出java核心包以及其它的补充包的所有信息而不用借助分析文档或者源代码,这个对于想构造一个java编辑器并且想提供输入帮助的人来说很方便,下面是一个输出类Windows的所有公共成员的信息的一个简单例子:
- import java.lang.reflect.*;
- import java.awt.*;
- public class GetClassInfoFromClassname {
- public static void main(String args[]) {
- Field[] fields=Window.class.getDeclaredFields();
- System.out.println(Window.class+" hava "+fields.length+" members:");
- for (int i=0;i<fields.length;i++) {
- Field f=fields[i];
- if ((f.getModifiers()&Modifier.STATIC)!=0) {
- System.out.print("static ");
- }
- System.out.println(f.getType()+" "+f.getName());
- }
- }
- }