#011 }
图 1:Class class 片段。注意它的 private empty ctor,意指不允许任何人经由编程方式产生
Class object。是的,其 object 只能由 JVM 产生。
二、“Class” object 的取得途径
Java 允许我们从多种管道为一个 class 生成对应的 Class object。图 2 是一份整理。
Class object 诞生管道
示例
运用 getClass()
注:每个 class 都有此函数
String str = "abc";
Class c1 = str.getClass();
运用
Class.getSuperclass()
2
Button b = new Button();
Class c1 = b.getClass();
Class c2 = c1.getSuperclass();
运用 static method
Class.forName()
(最常被使用)
Class c1 = Class.forName
("java.lang.String");
Class c2 = Class.forName ("java.awt.Button");
Class c3 = Class.forName
("java.util.LinkedList$Entry");
Class c4 = Class.forName ("I");
Class c5 = Class.forName ("[I");
运用
.class 语法
Class c1 = String.class;
Class c2 = java.awt.Button.class;
Class c3 = Main.InnerClass.class;
Class c4 = int.class;
Class c5 = int[].class;
运用
primitive wrapper
classes
的 TYPE 语法
Class c1 = Boolean.TYPE;
Class c2 = Byte.TYPE;
Class c3 = Character.TYPE;
Class c4 = Short.TYPE;
Class c5 = Integer.TYPE;
Class c6 = Long.TYPE;
Class c7 = Float.TYPE;
Class c8 = Double.TYPE;
Class c9 = Void.TYPE;
图 2:Java 允许多种管道生成 Class object。