项目中经常需要用到外部服务或者对外提供服务的接口,这个时候需要对返回参数进行转义避免外部对象对内部系统的影响。比如接口 DataTO getMyDate()返回值是DataTo 我需要转换成我们内部的对象DataDO,这样就算业务方提供的DataTO发生了变化,我们内部系统收到的影响可以最小化。这样就需要写一个DataTO到DataDO的转换方法,通常是属性的拷贝,类似:
public static DataDO toDataDO(DataTO dataTO) {
if (dataTO == null) {
return null;
}
DataDO DataDO = new DataDO();
DataDO.setPlname(dataTO.getPlname());
DataDO.setPladdress(dataTO.getPladdress());
DataDO.setTel(dataTO.getTel());
DataDO.setUrl(dataTO.getUrl());
DataDO.setPosx(dataTO.getPosx());
DataDO.setPosy(dataTO.getPosy());
DataDO.setStoreType(dataTO.getStoreType());
return DataDO;
}
你会发现如果属性很多,就需要人肉写很多这种机械的代码,有时候可能漏掉一个,就会很难发现问题。这个时候一般会有人写个main函数,java的反射可以很好的解决这个问题。因为想尝试下IDEA的plugin开发,就想开发一个可以自动生成O2O方法体的插件。
网上关于IDEA plugin的文档不算多,中文的也比较老,不过基本也凑合了。参考资料:
http://www.intellij.org.cn/downloads/intellij_plugin_basic.pdf
https://docs.google.com/document/pub?id=13WdYcWgXErISfdpToxGu1mFUC1jEZpjMYCCAzi2CEPQ
http://confluence.jetbrains.com/display/IDEADEV/PluginDevelopment
上面都是中文的,不过版本有点老,英文可以的同学可以看下官方的文档
http://confluence.jetbrains.com/display/IDEADEV/PluginDevelopment
不过后面用到的很多api还是要通过英文文档来看的。实际开发中还是有很多坑的,多借鉴其他插件的源码,多摸索。
目前插件已经上线
true | GenerateO2O |
源码在:https://github.com/ykdsg/GenerateO2O