/**
* 利用反射来设置
* @param coursewarePackages
* @return
*/
protected List<CoursewarePackageWrapper> getCoursewarePackageWrappers(List<CoursewarePackage> coursewarePackages){
List<CoursewarePackageWrapper> wrappers = Lists.newArrayList();
//key为获取方(CoursewarePackage),value为set方(CoursewarePackageWrapper)
Map<String,String> packMap = Maps.newHashMap();
packMap.put("id", "id");
packMap.put("createTime", "createTime");
packMap.put("name", "name");
packMap.put("realPicturePath", "realPicturePath");
packMap.put("creater-id", "userId");
packMap.put("creater-name", "userName");
packMap.put("description", "description");
Map<String,String> proMap = Maps.newHashMap();
proMap.put("id", "id");
proMap.put("name", "name");
proMap.put("sortCode", "sortCode");
proMap.put("sortId", "sortId");
for(CoursewarePackage coursewarePackage : coursewarePackages){
CoursewarePackageWrapper wrapper = new CoursewarePackageWrapper();
for(Entry<String, String> entry:packMap.entrySet()){
String packField = entry.getKey();
if(packField.indexOf("-")!=-1){
String subPackField1 = packField.substring(0, packField.indexOf("-"));
String subPackField2 = packField.substring( packField.indexOf("-")+1,packField.length());
ReflectionUtils.setFieldValue(wrapper, entry.getValue(),ReflectionUtils.getFieldValue(ReflectionUtils.getFieldValue(coursewarePackage, subPackField1),subPackField2) ) ;
}else{
ReflectionUtils.setFieldValue(wrapper, entry.getValue(),ReflectionUtils.getFieldValue(coursewarePackage, entry.getKey()) ) ;
}
}
List<Property> properties = Lists.newArrayList();
List<Property> properties2 = coursewarePackage.getProperties();
for(Property property:properties2){
Property property2 = new Property();
for(Entry<String, String> entry:proMap.entrySet()){
String packField = entry.getKey();
if(packField.indexOf("-")!=-1){
String subProField1 = packField.substring(0, packField.indexOf("-"));
String subProField2 = packField.substring( packField.indexOf("-")+1,packField.length());
ReflectionUtils.setFieldValue(property2, entry.getValue(),ReflectionUtils.getFieldValue(ReflectionUtils.getFieldValue(property, subProField1),subProField2) ) ;
}else{
ReflectionUtils.setFieldValue(property2, entry.getValue(),ReflectionUtils.getFieldValue(property, entry.getKey()) ) ;
}
}
properties.add(property2);
}
wrapper.setProperties(properties);
wrappers.add(wrapper);
}
return wrappers;
}
包装类,反射,上一篇续
最新推荐文章于 2021-10-22 01:33:25 发布