標籤:
1、
package reflectionZ;public class TreflectionZ{ public static void main(String[] args) throws ClassNotFoundException { // 得到 Cat的 Class對象(3種方式) // 1、通過 forName Class<?> clazz1 = Class.forName("reflectionZ.Cat"); // ZC: 會報異常"ClassNotFoundException" System.out.println("clazz1 : "+clazz1+" , "+clazz1.hashCode()); // 2、通過 class屬性 Class<?> clazz2 = Cat.class; System.out.println("clazz2 : "+clazz2+" , "+clazz2.hashCode()); // 3、通過 對象執行個體.getClass() Cat cat = new Cat(); Class<?> clazz3 = cat.getClass(); System.out.println("clazz3 : "+clazz3+" , "+clazz3.hashCode()); System.out.println("*** *** ***"); if (clazz1 == clazz2) System.out.println("clazz1 == clazz2"); else System.out.println("clazz1 != clazz2"); if (clazz1 == clazz3) System.out.println("clazz1 == clazz3"); else System.out.println("clazz1 != clazz3"); if (clazz2 == clazz3) System.out.println("clazz2 == clazz3"); else System.out.println("clazz2 != clazz3"); // ZC: 上面三個判斷 都是相等,可見 java中的對象的比較,比較的是 變數所指向的對象 而非變數本身 ... ! ! ! }}class Cat{}
2、
控制台輸出:
clazz1 : class reflectionZ.Cat , 8152936clazz2 : class reflectionZ.Cat , 8152936clazz3 : class reflectionZ.Cat , 8152936*** *** ***clazz1 == clazz2clazz1 == clazz3clazz2 == clazz3
3、
ZC_01_擷取Class對象