一、反射对象帮助类
/**
*@Description TODO 将数组转换成对象 注意参数要一一致
*@Author QuZhangJing
*@Date 17:54 2018/8/30
*@Version 1.0
*@param obj 数据数组
*@param classType 类字节码
*/
public static Object arrayToObject(Object[] obj,Class<?> classType) {
Object stu1= null;
try {
stu1 = classType.newInstance();
for(int i=0;i< classType.getDeclaredFields().length;i++){
String setMethodName="set"+classType.getDeclaredFields()[i].getName().substring(0,1).toUpperCase()+classType.getDeclaredFields()[i].getName().substring(1);
Method setMethod=classType.getDeclaredMethod(setMethodName, new Class[]{classType.getDeclaredFields()[i].getType()});
setMethod.invoke(stu1,obj[i]);
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return stu1;
}
public static void main(String [] args){
User user = (User)arrayToObject(new Object[]{"张三","李四"}, User.class);
System.err.println("name:"+user.getUsername());
System.err.println("pwd:"+user.getPassword());
}
二、用户实体
public class User {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
三、控制台输出