package cn.com.movie.util;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
/**
* @description:
* @author yang
* @date 2016年4月7日 下午1:52:46
* @package cn.com.movie.util
*/
public class Util {
/**
* 功能:将this_obj的值拷贝到obj中
*
* @param this_obj
* @param obj
*/
public static void copy(Object this_obj, Object obj) {
try {
Field fields_obj[] = obj.getClass().getDeclaredFields();
Field fields_this[] = this_obj.getClass().getDeclaredFields();
for (int i = 0; i < fields_obj.length; i++) {
Field field = fields_obj[i];
field.setAccessible(true);
//遍历this_obj
for (int j = 0; j < fields_this.length; j++) {
//发现相同的field就可以拷贝
if (fields_this[j].getName().equals(field.getName())) {
//除去private stitic final的属性
if ((Modifier.FINAL + Modifier.STATIC + Modifier.PRIVATE) == field
.getModifiers()) {
break;
}
String field_name = field.getName();
//获得obj的set方法
Method m = (Method) obj.getClass().getMethod("set" + getMethodName(field_name), field.getType());
Class<?> parameter = field.getType();
//当set中的参数和field相同时,就可以拷贝
if (parameter.toString().equals(fields_this[j].getGenericType().toString())) {
Method this_m = (Method) this_obj.getClass().getMethod("get" + getMethodName(field_name));
m.invoke(obj, this_m.invoke(this_obj));
}
break;
}
}
}
} catch (IllegalArgumentException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 把一个字符串的第一个字母大写、效率是最高的、
private static String getMethodName(String fildeName) throws Exception {
byte[] items = fildeName.getBytes();
items[0] = (byte) ((char) items[0] - 'a' + 'A');
return new String(items);
}
}
//测试类
package cn.com.movie.model;
import java.io.Serializable;
import java.lang.reflect.Field;
/**
* @description:
* @author yang
* @date 2016年3月14日 下午3:47:17
* @package cn.com.movie.dao
*/
public class Hall implements Serializable {
/**
*
**/
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String use_yn;
private String introduce;
private int seat_row;
private int seat_col;
private int seat_num;
private int hall_type_id;
private String hall_type_name;
public String getHall_type_name() {
return hall_type_name;
}
public void setHall_type_name(String hall_type_name) {
this.hall_type_name = hall_type_name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getUse_yn() {
return use_yn;
}
public String getIntroduce() {
return introduce;
}
public int getSeat_row() {
return seat_row;
}
public int getSeat_col() {
return seat_col;
}
public int getSeat_num() {
return seat_num;
}
public int getHall_type_id() {
return hall_type_id;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setUse_yn(String use_yn) {
this.use_yn = use_yn;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public void setSeat_row(int seat_row) {
this.seat_row = seat_row;
}
public void setSeat_col(int seat_col) {
this.seat_col = seat_col;
}
public void setSeat_num(int seat_num) {
this.seat_num = seat_num;
}
public void setHall_type_id(int hall_type_id) {
this.hall_type_id = hall_type_id;
}
}
package cn.com.movie.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author yang
* @date 2016年3月14日 下午3:47:17
* @package cn.com.movie.dao
*/
public class HallShow implements Serializable {
/**
*
**/
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String use_yn;
private String introduce;
private int seat_row;
private int seat_col;
private int seat_num;
private int hall_type_id;
private List<HallType> hallTypes;
public HallShow() {
this.id = 0;
this.name = new String("");
this.use_yn = new String("");
this.introduce = new String("");
this.seat_row = 0;
this.seat_col = 0;
this.seat_num = 0;
this.hall_type_id = 0;
this.hallTypes = new ArrayList<HallType>();
}
public int getHall_type_id() {
return hall_type_id;
}
public void setHall_type_id(int hall_type_id) {
this.hall_type_id = hall_type_id;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getUse_yn() {
return use_yn;
}
public String getIntroduce() {
return introduce;
}
public int getSeat_row() {
return seat_row;
}
public int getSeat_col() {
return seat_col;
}
public int getSeat_num() {
return seat_num;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setUse_yn(String use_yn) {
this.use_yn = use_yn;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public void setSeat_row(int seat_row) {
this.seat_row = seat_row;
}
public void setSeat_col(int seat_col) {
this.seat_col = seat_col;
}
public void setSeat_num(int seat_num) {
this.seat_num = seat_num;
}
public List<HallType> getHallTypes() {
return hallTypes;
}
public void setHallTypes(List<HallType> hallTypes) {
this.hallTypes = hallTypes;
}
}
“`