java反射简单例子

 首先定义一个Customer类,表示客户的相关信息

  
  
  
  
  1. public  class Customer { 
  2.         private Long id; 
  3.         private String name; 
  4.         private int age; 
  5.         private String phone; 
  6.         public Customer() { 
  7.              
  8.         } 
  9.         public Customer(Long id,String name,int age,String phone) { 
  10.             this.id=id; 
  11.             this.name=name; 
  12.             this.age=age; 
  13.             this.phone=phone; 
  14.         } 
  15.         public final Long getId() { 
  16.             return id; 
  17.         } 
  18.         public void setId(Long id) { 
  19.             this.id=id; 
  20.         } 
  21.         public final String getName() { 
  22.             return name; 
  23.         } 
  24.         public final void setName(String name) { 
  25.             this.name=name; 
  26.         } 
  27.         public final int getAge() { 
  28.             return age; 
  29.         } 
  30.         public void setAge(int age) { 
  31.             this.age=age; 
  32.         } 
  33.         public final String getPhone() { 
  34.             return phone; 
  35.         } 
  36.         public void setAge(String phone) { 
  37.             this.phone=phone; 
  38.         } 
  39.     } 

写一个类,实现获取Customer实例所有的构造方法和普通方法及属性信息

 

  
  
  
  
  1. import java.lang.reflect.Constructor; 
  2. import java.lang.reflect.Field; 
  3. import java.lang.reflect.Method; 
  4.  
  5. public class ReflectionApplication { 
  6.  
  7.     /** 
  8.      * @param args 
  9.      */ 
  10.     public static void ShowObjectInfo(Object obj) throws Exception { 
  11.         Class c=obj.getClass(); 
  12.         int i; 
  13.         System.out.println(obj.toString()+"所有的构造方法是:"); 
  14.         Constructor [] cs=c.getConstructors(); 
  15.         for(i=0;i<cs.length;i++) { 
  16.             System.out.println(cs[i].toString()); 
  17.         } 
  18.          
  19.         System.out.println(obj.toString()+"所有的声明的方法是:"); 
  20.         Method [] methods=c.getDeclaredMethods(); 
  21.         for(i=0;i<methods.length;i++) { 
  22.             System.out.println(methods[i].toString()); 
  23.         } 
  24.          
  25.         System.out.println(obj.toString()+"所有的声明的属性是:"); 
  26.         Field[] fields=c.getDeclaredFields(); 
  27.         for(i=0;i<fields.length;i++) { 
  28.             System.out.println(fields[i].toString()); 
  29.         } 
  30.     } 
  31.     public static void main(String[] args) throws Exception { 
  32.         // TODO Auto-generated method stub 
  33.         Customer customer=new Customer(001L,"wangzhicheng",28,"13866916216"); 
  34.         ShowObjectInfo(customer); 
  35.     } 
  36.  

运行结果:

 

  
  
  
  
  1. Customer@1fb8ee3所有的构造方法是: 
  2. public Customer() 
  3. public Customer(java.lang.Long,java.lang.String,int,java.lang.String) 
  4. Customer@1fb8ee3所有的声明的方法是: 
  5. public void Customer.setId(java.lang.Long) 
  6. public final int Customer.getAge() 
  7. public void Customer.setAge(int
  8. public void Customer.setAge(java.lang.String) 
  9. public final java.lang.String Customer.getPhone() 
  10. public final java.lang.String Customer.getName() 
  11. public final java.lang.Long Customer.getId() 
  12. public final void Customer.setName(java.lang.String) 
  13. Customer@1fb8ee3所有的声明的属性是: 
  14. private java.lang.Long Customer.id 
  15. private java.lang.String Customer.name 
  16. private int Customer.age 
  17. private java.lang.String Customer.phone 
  18. private java.lang.String Customer.phone 

 

你可能感兴趣的:(java,反射)