反射学习(二)
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 }