首先定义一个Customer类,表示客户的相关信息
- public class Customer {
- private Long id;
- private String name;
- private int age;
- private String phone;
- public Customer() {
- }
- public Customer(Long id,String name,int age,String phone) {
- this.id=id;
- this.name=name;
- this.age=age;
- this.phone=phone;
- }
- public final Long getId() {
- return id;
- }
- public void setId(Long id) {
- this.id=id;
- }
- public final String getName() {
- return name;
- }
- public final void setName(String name) {
- this.name=name;
- }
- public final int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age=age;
- }
- public final String getPhone() {
- return phone;
- }
- public void setAge(String phone) {
- this.phone=phone;
- }
- }
写一个类,实现获取Customer实例所有的构造方法和普通方法及属性信息
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
- public class ReflectionApplication {
- /**
- * @param args
- */
- public static void ShowObjectInfo(Object obj) throws Exception {
- Class c=obj.getClass();
- int i;
- System.out.println(obj.toString()+"所有的构造方法是:");
- Constructor [] cs=c.getConstructors();
- for(i=0;i<cs.length;i++) {
- System.out.println(cs[i].toString());
- }
- System.out.println(obj.toString()+"所有的声明的方法是:");
- Method [] methods=c.getDeclaredMethods();
- for(i=0;i<methods.length;i++) {
- System.out.println(methods[i].toString());
- }
- System.out.println(obj.toString()+"所有的声明的属性是:");
- Field[] fields=c.getDeclaredFields();
- for(i=0;i<fields.length;i++) {
- System.out.println(fields[i].toString());
- }
- }
- public static void main(String[] args) throws Exception {
- // TODO Auto-generated method stub
- Customer customer=new Customer(001L,"wangzhicheng",28,"13866916216");
- ShowObjectInfo(customer);
- }
- }
运行结果:
- Customer@1fb8ee3所有的构造方法是:
- public Customer()
- public Customer(java.lang.Long,java.lang.String,int,java.lang.String)
- Customer@1fb8ee3所有的声明的方法是:
- public void Customer.setId(java.lang.Long)
- public final int Customer.getAge()
- public void Customer.setAge(int)
- public void Customer.setAge(java.lang.String)
- public final java.lang.String Customer.getPhone()
- public final java.lang.String Customer.getName()
- public final java.lang.Long Customer.getId()
- public final void Customer.setName(java.lang.String)
- Customer@1fb8ee3所有的声明的属性是:
- private java.lang.Long Customer.id
- private java.lang.String Customer.name
- private int Customer.age
- private java.lang.String Customer.phone
- private java.lang.String Customer.phone