首先是定义下面的两个类:

1、UserInfo.java:

  1. package org.ml.fs; 
  2.  
  3. public class UserInfo { 
  4.     private Integer id; 
  5.     private String username; 
  6.     private String passward; 
  7.  
  8.     public Integer getId() { 
  9.         return id; 
  10.     } 
  11.  
  12.     public void setId(Integer id) { 
  13.         this.id = id; 
  14.     } 
  15.  
  16.     public String getUsername() { 
  17.         return username; 
  18.     } 
  19.  
  20.     public void setUsername(String username) { 
  21.         this.username = username; 
  22.     } 
  23.  
  24.     public String getPassward() { 
  25.         return passward; 
  26.     } 
  27.  
  28.     public void setPassward(String passward) { 
  29.         this.passward = passward; 
  30.     } 

2、GetClassTest.java:

  1. package org.ml.fs; 
  2.  
  3. public class GetClassTest { 
  4.  
  5.     public boolean checkClass() { 
  6.  
  7.         try { 
  8.             System.out.println("第一种方式,通过类本身来获取自身('GetClassTest')的对象"); 
  9.             Class<?> UserClass = this.getClass(); // (return Class) 
  10.             System.out.println(UserClass); 
  11.             System.out.println("第一种方式操作成功!\n"); 
  12.  
  13.             System.out.println("第二种方式,通过子类的实例获取父类('Object')的对象"); 
  14.             UserInfo ui = new UserInfo(); 
  15.             UserClass = ui.getClass(); 
  16.             Class<?> SubUserClass = UserClass.getSuperclass(); 
  17.             System.out.println(SubUserClass); 
  18.             System.out.println("第二种方式操作成功!\n"); 
  19.  
  20.             System.out.println("第三种方式,通过类名加.Class获取('UserInfo')对象"); 
  21.             Class<UserInfo> ForClass = org.ml.fs.UserInfo.class
  22.             System.out.println(ForClass); 
  23.             System.out.println("第三种方式操作成功!\n"); 
  24.  
  25.             System.out.println("第四种方式,通过类名的字符串获取('UserInfo')对象"); 
  26.             Class<?> ForName = Class.forName("org.ml.fs.UserInfo"); 
  27.             System.out.println(ForName); 
  28.             System.out.println("第四种方式操作成功!\n"); 
  29.         } catch (ClassNotFoundException e) { 
  30.             System.out.println("出现" + e.getMessage() + "异常"); 
  31.             return false
  32.         } 
  33.         return true
  34.     } 
  35.  
  36.     /** 
  37.      * @param args 
  38.      */ 
  39.     public static void main(String[] args) { 
  40.         GetClassTest gct = new GetClassTest(); 
  41.         if (gct.checkClass()) { 
  42.             System.out.println("反射初始化对象全部成功!"); 
  43.         } else { 
  44.             System.out.println("反射初始化对象出现错误!"); 
  45.         } 
  46.     } 

运行结果:

以上的代码实现了反射机制获取对象的四种方法。