1. 程式人生 > >反射學習(二)

反射學習(二)

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 }

反射學習(二)