1、java 代码:
package reflectionZ; public class TreflectionZ { public static void main(String[] args) throws ClassNotFoundException { // 得到 Cat的 Class对象 // 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 , 8152936
clazz2 : class reflectionZ.Cat , 8152936
clazz3 : class reflectionZ.Cat , 8152936
*** *** ***
clazz1 == clazz2
clazz1 == clazz3
clazz2 == clazz3
3、