java反射

//测试
package demo;

import java.util.HashMap;
import java.util.Map;

public class Demo1 {
public static void main(String[] args) {
  Map map=new HashMap<String,Object>();
  map.put("uname","andy");
  map.put("age" , 18);
  map.put("sex","男");
 
  UserForm form=new UserForm();
  Utils.copyParamsToObject(map, form);
  System.out.println(form);
 
 
}

}
//
定义的方法
package demo;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;

public class Utils {
public static void copyParamsToObject(Map map,Object obj){

try {
Class clazz=obj.getClass();

Field[] fields=clazz.getDeclaredFields();

for(Iterator<String> itr=map.keySet().iterator();itr.hasNext();){
String key=itr.next();
for(Field f:fields){
if(f.getName().equals(key)){
String methodName="set"+key.substring(0,1).toUpperCase()+key.substring(1);
Method m1=clazz.getDeclaredMethod(methodName, f.getType());

m1.invoke(obj, map.get(key));
break;
}
}
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}




//定义一个类
package demo;

public class UserForm {
private String uname;
private int age;
private String pwd;

public String getUname() {
return uname;
}

public void setUname(String uname) {
this.uname = uname;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}


public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

public UserForm() {
// TODO Auto-generated constructor stub
}

@Override
public String toString() {
return "UserForm [uname=" + uname + ", age=" + age + ", pwd=" + pwd
+ "]";
}


}

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