java基礎第23天

package com.cn;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

import org.junit.Test;

public class DemoReflect {

 
 
 
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  Cat newCat = new Cat();
  
  newCat.setField1("AA");
  newCat.setField2("BB");
  newCat.setField3("BB");
  newCat.setField4(4444444);
  newCat.setField5('P');
  
  
     //創建類對象
  Class cat = Cat.class;
  Object neww = cat.newInstance();
     
  //獲取類方法
  Field[] fields = cat.getDeclaredFields();
  
  
  for (Field field : fields) {
   
  //獲取get方法字符串
  String name =  "get"+ (field.getName().charAt(0)+"").toUpperCase()+field.getName().substring(1);
  //獲取get返回值
  Object getField = cat.getDeclaredMethod(name).invoke(newCat);
  
  //獲取sett方法字符串
  name =  "set"+ (field.getName().charAt(0)+"").toUpperCase()+field.getName().substring(1);

  
//  System.out.println(name);
  
  //新對象賦值
  cat.getDeclaredMethod(name,field.getType()).invoke(neww, getField);
  }
 
  
  System.out.println(((Cat)neww).getField5());

 }

}

 

package com.cn;

public class Cat {

 
 
 private String field1 ;
 private String field2 ;
 private String field3 ;
 private int field4 ;
 private char field5 ;
   
   ;
 /**
  * @return the field1
  */
 public String getField1() {
  return field1;
 }
 /**
  * @return the field2
  */
 public String getField2() {
  return field2;
 }
 /**
  * @return the field3
  */
 public String getField3() {
  return field3;
 }
 /**
  * @return the field4
  */
 public int getField4() {
  return field4;
 }
 /**
  * @param field1 the field1 to set
  */
 public void setField1(String field1) {
  this.field1 = field1;
 }
 /**
  * @param field2 the field2 to set
  */
 public void setField2(String field2) {
  this.field2 = field2;
 }
 /**
  * @param field3 the field3 to set
  */
 public void setField3(String field3) {
  this.field3 = field3;
 }
 /**
  * @param field4 the field4 to set
  */
 public void setField4(int field4) {
  this.field4 = field4;
 }
 /**
  * @return the field5
  */
 public char getField5() {
  return field5;
 }
 /**
  * @param field5 the field5 to set
  */
 public void setField5(char field5) {
  this.field5 = field5;
 }
 
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章