反射學習(二)
阿新 • • 發佈:2017-11-10
trac class對象 ktr 使用 gen return .get super ctrl
1 package com.iotek.reflection; 2 /** 3 * 反射概念及Class對象 4 * @author Administrator 5 * @Version 1.0 2017/05/24 6 */ 7 public class classDemo { 8 9 public static void main(String[] args) { 10 // 第1種方法獲得Class對象:對象名.getClass(),返回object的運行時類 11 Employee employee = new Employee("zhangsan", 30);12 // 獲取employee這個對象所對應的類型(Employee)所對應的Class對象 13 Class<?> classType = employee.getClass(); // ctrl+2 L ?代表這個類型可以接受所有Class類所 14 System.out.println(classType.getName()); // 打印class對象對應的類型:Employee 15 System.out.println(classType.getSuperclass().getName()); // 打印class對象對應的類型的父類:Object類型16 17 // 第2種方法獲得Class對象:類名.class 18 Class<?> classType1 = Employee.class; 19 System.out.println(classType1.getName()); // 打印class對象對應的類型:Employee 20 System.out.println(classType1.getSuperclass().getName()); 21 22 // 第3種方法獲得Class對象:使用Class.forName()這個靜態方法來獲取類與之對應的class對象23 try { 24 Class<?> classType2 = Class.forName("com.iotek.classtype.Employee"); 25 System.out.println("classType2 is:"+classType2.getName()); 26 System.out.println(classType2.getName()); // 打印class對象對應的類型:Employee 27 System.out.println(classType2.getSuperclass().getName()); 28 29 } catch (ClassNotFoundException e) { 30 // TODO Auto-generated catch block 31 e.printStackTrace(); 32 } 33 34 // 第4種方法獲得Class對象:獲取基本數據類型的Class對象 35 Class<?> classType3 = int.class; 36 System.out.println(classType3.getName()); // 打印class對象對應的類型:Employee 37 // System.out.println(classType3.getSuperclass().getName()); 只有對象才有父類 38 // 通過基本數據類型的包裝類來獲取對應的基本數據類型所對應的Class對象 39 Class<?> classType4 = Double.TYPE; 40 // Double是一個包裝類 41 System.out.println(classType4.getName()); // 打印class對象對應的類型:Employee 42 // System.out.println(classType4.getSuperclass().getName()); 43 Class<?> classType5 = Double.class; 44 System.out.println(classType5.getName()); // 打印class對象對應的類型:Employee 45 System.out.println(classType5.getSuperclass().getName()); 46 // 上面語句輸出java.lang.Number,說明Double這個類的父類是Number 47 } 48 49 } 50 51 class Employee { 52 private String name; 53 private int age; 54 55 public Employee(String name, int age) { 56 super(); 57 this.name = name; 58 this.age = age; 59 } 60 61 public String getName() { 62 return name; 63 } 64 65 public void setName(String name) { 66 this.name = name; 67 } 68 69 public int getAge() { 70 return age; 71 } 72 73 public void setAge(int age) { 74 this.age = age; 75 } 76 77 }
反射學習(二)