23 System.out.println("Field '" + f.getName() + "' is static.");
24 }
25 }
26 //获取类的构造函数,getConstructors仅仅返回该类的public构造函数。
27 //如果希望获得全部的构造函数,调用getDeclaredConstructors
28 Constructor< >[] constructors = c.getConstructors();
29 for (Constructor< > ctor : constructors) {
30 if (Modifier.isProtected(ctor.getModifiers())) {
31 System.out.println("Constructor '" + ctor.getName() + "' is protected.");
32 } else if (Modifier.isPrivate(ctor.getModifiers())) {
33 System.out.println("Constructor '" + ctor.getName() + "' is private.");
34 } else if (Modifier.isPublic(ctor.getModifiers())) {
35 System.out.println("Constructor '" + ctor.getName() + "' is public.");
36 }
37 }
38 //获取类中声明的域方法,但是不包含超类中的方法。
39 //这其中getMethods()方法将仅仅返回当前类的public域方法
40 Method methods[] = c.getDeclaredMethods();
41 for (Method m : methods) {
42 if (Modifier.isProtected(m.getModifiers())) {
43 System.out.println("Method '" + m.getName() + "' is protected.");
44 } else if (Modifier.isPrivate(m.getModifiers())) {
45 System.out.println("Method '" + m.getName() + "' is private.");
46 } else if (Modifier.isPublic(m.getModifiers())) {
47 System.out.println("Method '" + m.getName() + "' is public.");
48 } else if (Modifier.isStatic(m.getModifiers())) {
49 System.out.println("Method '" + m.getName() + "' is static.");
50 } else if (Modifier.isNative(m.getModifiers())) {
51 System.out.println("Method '" + m.getName() + "' is native.");
52 } else if (Modifier.isAbstract(m.getModifiers())) {
53 System.out.println("Method '" + m.getName() + "' is abstract.");
54 } else if (Modifier.isFinal(m.getModifiers())) {
55 System.out.println("Method '" + m.getName() + "' is final.");
56 }
57 }
58 System.out.println("}");
59 } catch (ClassNotFoundException e) {
60 System.err.println("Error: Class " + className + " not found!");
61 } catch (Exception e) {
62 System.err.println(e);
63 }
64 }
65 }
5) 获取超类的名称:
1 public static void main(String[] args) {
2 Class< > subclass = LinkedList.class;
3 //获取超类的Class对象。
4 Class< > superclass = subclass.getSuperclass();
5 while (superclass != null) {
6 String className = superclass.getName();
7 System.out.println(className);
8 subclass = superclass;
9 superclass = subclass.getSuperclass();
10 }
11 }
12 /* 输出结果如下:
13 java.util.AbstractSequentialList
14 java.util.AbstractLis