java.pojo工具类

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;
}

}

“`

你可能感兴趣的:(java-pojo工,pojo拷贝类)