package com.jiuqi.lbsinterface.bean; import java.io.Serializable; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.UUID; import com.jqmobile.core.orm.DBColumn; import com.jqmobile.core.utils.plain.Log; public class Bean implements Serializable { @DBColumn(primaryId = true, comment = "主键,UUID") private String guid; @DBColumn(date = true, comment = "数据插入时间") private long createDate; public String getGuid() { return guid; } public void setGuid(String recid) { this.guid = recid; } /** * 自动生成新的RECID */ public void setGuid() { this.guid = UUID.randomUUID().toString(); } public long getCreateDate() { return createDate; } public void setCreateDate(long createDate) { this.createDate = createDate; } public void setCreateDate() { this.createDate = System.currentTimeMillis(); } public <T> T to(T obj){ Field[] objs = getAllFields(obj.getClass()); Field[] fs = getAllFields(this.getClass()); for(Field o : objs){ for(Field f : fs){ if(f.getName().equals(o.getName()) && f.getType().equals(o.getType())){ f.setAccessible(true); o.setAccessible(true); try { o.set(obj, f.get(this)); } catch (Exception e) { Log.getLog(this).w(f,e); continue; } } } } return obj; } private static Field[] getAllFields(Class<?> c){ List<Field> list = new ArrayList<Field>(); while(c != Object.class){ list.addAll(Arrays.asList(c.getDeclaredFields())); c = c.getSuperclass(); } List<Field> result = new ArrayList<Field>(); for(Field f : list){ if(f.getName().contains("$")){ continue; } result.add(f); } return result.toArray(new Field[result.size()]); } }