注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

TransferCodeGen 代码生成帮助类,生成tranfer代码 java中PO,VO,TO,BO等的转换代码生成  

2014-03-27 11:27:03|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
有些地方没有用到 beanutil来copy属性,用下面这个方法来生成tranfer的代码还是比较方便的。
import org.junit.Ignore;

import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
* @author wanggang
* @version 2014年3月27日
*/
@Ignore
public class TransferCodeGen {

static Map<String, String> fieldSetMap = new LinkedHashMap<String, String>();
static Map<String, String> fieldGetMap = new LinkedHashMap<String, String>();

static List<String> ignoreMethods = Arrays.asList("equals","toString","hashCode","canEqual","compareTo","indexOf","finalize");
static void gen(Class<?> c,boolean ignoreNoneGetSet){
Method[] ms = c.getDeclaredMethods();

for (Method m : ms) {
String methodName = m.getName();
String fieldName;

if (methodName.startsWith("get") || methodName.startsWith("is")) {
if (methodName.startsWith("get")) {
fieldName = methodName.substring(3).toLowerCase();

fieldGetMap.put(fieldName, methodName);
} else if (methodName.startsWith("is")) {
fieldName = methodName.substring(2).toLowerCase();

fieldGetMap.put(fieldName, methodName);
}
} else if (methodName.startsWith("set")) {
if (methodName.startsWith("set")) {
fieldName = methodName.substring(3).toLowerCase();

fieldSetMap.put(fieldName, methodName);
}
} else if (ignoreMethods.contains(methodName)) {
continue;
} else {
if (ignoreNoneGetSet) {
continue;
}
System.err.println("未定义.methodName:" + methodName+", c:"+c);
System.exit(1);
}
}
}
static void gen(Object obj, String to, String from, boolean ignoreNoneGetSet) {

Class<?> c = obj.getClass();

if(c.getSuperclass() != Object.class){
Class<?> superClazz = c.getSuperclass();

gen(superClazz, ignoreNoneGetSet);

}
gen(c, ignoreNoneGetSet);

System.out.println("-------------------------------------------------------");
for (String key : fieldGetMap.keySet()) {
String setMethodName = fieldSetMap.get(key);
String getMethodName = fieldGetMap.get(key);
System.out.println(to + "." + setMethodName + "(" + from + "." + getMethodName + "());");
}
}

/**
* @param args
*/
public static void main(String[] args) {
ignoreMethods = Arrays.asList("equals","toString","hashCode","canEqual","compareTo","indexOf","finalize");
Object obj = new YourObject();//your obj
String to = "to";
String from = "from";
gen(obj, to, from, false);
}
}


保存备下次用
程序运行结果:


getId
setId
getObjectId
setObjectId
getObjectType
setObjectType
getCategoryId
setCategoryId
getShopType
setShopType
getCheckStatus
setCheckStatus
getEffectiveTime
setEffectiveTime
getRatio
setRatio
getOff
setOff
getCreatorId
setCreatorId
getCreatorNick
setCreatorNick
getTargetFee
setTargetFee
getBaseFee
setBaseFee
-------------------------------------------------------
commSolutionTO.setId(feeCommSolutionTO.getId());
commSolutionTO.setObjectId(feeCommSolutionTO.getObjectId());
commSolutionTO.setObjectType(feeCommSolutionTO.getObjectType());
commSolutionTO.setCategoryId(feeCommSolutionTO.getCategoryId());
commSolutionTO.setShopType(feeCommSolutionTO.getShopType());
commSolutionTO.setCheckStatus(feeCommSolutionTO.getCheckStatus());
commSolutionTO.setEffectiveTime(feeCommSolutionTO.getEffectiveTime());
commSolutionTO.setRatio(feeCommSolutionTO.getRatio());
commSolutionTO.setOff(feeCommSolutionTO.getOff());
commSolutionTO.setCreatorId(feeCommSolutionTO.getCreatorId());
commSolutionTO.setCreatorNick(feeCommSolutionTO.getCreatorNick());
commSolutionTO.setTargetFee(feeCommSolutionTO.getTargetFee());
commSolutionTO.setBaseFee(feeCommSolutionTO.getBaseFee());
  评论这张
 
阅读(483)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016