Java中支持在类的内部定义类,这种类成为内部类。内部类有些像Java中的方法,可以使用访问权限限定符修饰,可以使用static修饰等。编写程序,利用Java的反射机制来查看内部类的信息。
思路分析:
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 |
import java.lang.reflect.Modifier; import java.lang.reflect.Type; public class NestedClassInformation { public
static void main(String[] args) throws
ClassNotFoundException { Class<?> cls = Class.forName( "java.awt.geom.Point2D" ); Class<?>[] classes = cls.getDeclaredClasses(); // 获得代表内部类的Class对象组成的数组 for
(Class<?> clazz : classes) { // 遍历Class对象数组 System.out.println( "类的标准名称:"
+ clazz.getCanonicalName()); System.out.println( "类的修饰符:"
+ Modifier.toString(clazz.getModifiers())); Type[] interfaces = clazz.getGenericInterfaces(); // 获得所有泛型接口 System.out.println( "类所实现的接口:" ); if
(interfaces.length != 0 ) { // 如果泛型接口个数不是0则输出 for
(Type type : interfaces) { System.out.println( "\t"
+ type); } } else
{ System.out.println( "\t"
+ "空" ); } Type superClass = clazz.getGenericSuperclass(); // 获得直接父类 System.out.print( "类的直接继承类:" ); if
(superClass != null ) { // 如果直接父类不是Object就输出 System.out.println(superClass); } else
{ System.out.println( "空" ); } } } } |
效果如图:
原文:http://www.cnblogs.com/cysolo/p/3562011.html