package com.java;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 具体操作
* @author Bruce
*
*/
public class SetDataForExcel {
public static void main(String[] args) {
String type = "com.java.Student" ; //xml中对应的类名称
Map<String, Object> excelMap = new HashMap<String, Object>(); //excel中上传的一条数据
excelMap.put("name", "v1");
excelMap.put("age", 12);
List<Object> objects = new SetDataForExcel().getObject(type, excelMap);
if(!objects.isEmpty()){
System.out.println("数据添加成功");
} else {
System.out.println("数据添加失败");
}
}
/**
* 获取对象
* @param classType
* @return
*/
public List<Object> getObject(String classType, Map<String, Object> excelMap){
List<Object> objects = new ArrayList<Object>() ; //创建保存实体类的集合
Object object = null, valObjects = null ;
try {
object = Class.forName(classType).newInstance(); //获取实体类
Field[] fields = object.getClass().getFields(); //获取实例中的属性
for(int i = 0, len = fields.length; i < len; i++){
valObjects = Class.forName(classType).newInstance();
if(fields[i].getName().equals("name"))
fields[i].set(valObjects, excelMap.get("name"));
else if(fields[i].getName().equals("age")){
fields[i].set(valObjects, excelMap.get("age"));
}
objects.add(valObjects);
}
} catch (Exception e) {
System.out.println("使用反射机制为对象赋值的时候出错了! SetDataForExcel ");
e.printStackTrace();
}
return objects ;
}
}
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 具体操作
* @author Bruce
*
*/
public class SetDataForExcel {
public static void main(String[] args) {
String type = "com.java.Student" ; //xml中对应的类名称
Map<String, Object> excelMap = new HashMap<String, Object>(); //excel中上传的一条数据
excelMap.put("name", "v1");
excelMap.put("age", 12);
List<Object> objects = new SetDataForExcel().getObject(type, excelMap);
if(!objects.isEmpty()){
System.out.println("数据添加成功");
} else {
System.out.println("数据添加失败");
}
}
/**
* 获取对象
* @param classType
* @return
*/
public List<Object> getObject(String classType, Map<String, Object> excelMap){
List<Object> objects = new ArrayList<Object>() ; //创建保存实体类的集合
Object object = null, valObjects = null ;
try {
object = Class.forName(classType).newInstance(); //获取实体类
Field[] fields = object.getClass().getFields(); //获取实例中的属性
for(int i = 0, len = fields.length; i < len; i++){
valObjects = Class.forName(classType).newInstance();
if(fields[i].getName().equals("name"))
fields[i].set(valObjects, excelMap.get("name"));
else if(fields[i].getName().equals("age")){
fields[i].set(valObjects, excelMap.get("age"));
}
objects.add(valObjects);
}
} catch (Exception e) {
System.out.println("使用反射机制为对象赋值的时候出错了! SetDataForExcel ");
e.printStackTrace();
}
return objects ;
}
}
//========================文件2
package com.java;
/**
* 模拟你的实体类
* @author Bruce
*
*/
public class Student {
public String name ; //如果定义为private私有的,需要用到暴力反射
public int age ;
}