飞龙-core,让Java开发更简单的工具包-core一、背景在JAVA开发过程中,经常看到小伙伴直接从网上copy一大段代码来使用,或者写的代码很长,很长,long...痛点是:sonar扫描难读难维护导致长债codereview被小伙伴鄙视....feilong-core专注于J2SE的核心项目飞龙平台,创建于2008年,愿景:Reducedevelopment,Releaseideas(减少开发,释放思路),希望减少编写重复和复杂的代码,让你摆脱大量重复的底层代码,提高工作效率;多考虑业务的完整性,让你的代码更简洁、易写、易读、易维护;经过多次迭代,已经逐渐走向稳定二、飞龙核心简介1、简介:让你摆脱大量重复的底层代码,提高工作效率;让你的代码更简洁、易写、易读、易维护;2.feilong-core优点:使用feilong-core的原因是常用的工具类(比如小而实用的日期处理-DateUtil,集合处理工具-CollectionsUtil等)和常用的JAVA常量类(比如常用的时间patterns-DatePattern,常用时间间隔-TimeInterval等)UnnecessaryException转换为RuntimeExceptions减少不必要的代码国内最全的API有中文注解有完善的单元测试,ConvertUtil进行类型转换等)还有常用的JAVA常量类(如日期格式DatePattern、时间间隔TimeInterval等)UnnecessaryExceptions转换为RuntimeExceptions,减少不必要的代码。国内最全API中文注释单元测试4.feilong-core工具包大全feilong-core工具包5.部分功能图feilong-core功能图3.feilong-core常用API操作1.ConvertUtil操作集合工具类之前调用一个api的时候,api需要一个list参数,但是您现在只有一个对象,在这种情况下如何编写代码?您曾经这样写:ListitemIds=newArrayList<>();itemIds.add(itemId);sdkItemManager.findItemImageByItemIds(itemIds);现在你可以这样写:sdkItemManager.findItemImageByItemIds(ConvertUtil.toList(itemId));使用ConvertUtil.toList()方法,只需要一行代码搞定,代码简洁清爽同样,您曾经这样编写以下代码:ListskuIds=newArrayList<>();skuIds.add(9L);skuIds.add(10L);skuIds.add(13L);skuIds.add(18L);skuIds.add(20L);BundleValidateResultresult=bundleManager.validateBundle(skuIds);现在你可以缩写:ListskuIds=ConvertUtil.toList(9L,10L,13L,18L,20L);BundleValidateResultresult=bundleManager.validateBundle(skuIds);代码更易读,更简洁.add()方法添加到集合中并拼写成一个列表(ArrayList)。这个过程例如:提取SalesOrderCommand列表中的id属性组成一个List,需要这样写:ListsalesOrderList=sdkOrderDao.findOrdersWithOutPage(sorts,searchParam);//...ListidList=newArrayList<>(salesOrderList.size());for(SalesOrderCommandcmd:salesOrderList){idList.add(cmd.getId());}//查询订单行ListallLineList=sdkOrderLineDao.findOrderDetailListByOrderIds(idList);现在你可以写:ListsalesOrderList=sdkOrderDao.findOrdersWithOutPage(sorts,searchParam);//...ListidList=CollectionsUtil.getPropertyValueList(salesOrderList,"id");//查询订单行ListallLineList=sdkOrderLineDao.findOrderDetailListByOrderIds(id列表);现在只需编写CollectionsUtil.getPropertyValueList(salesOrderPage,"id")这段代码就可以在一行中完成。).3.不得不提的异常处理。众所周知,JAVA有checkedexception和uncheckedException,也就是我们常说的RuntimeException和Exception。Checkedexception有它的使用场景,但是在我们日常的开发过程中,我们并没有对他做特殊的代码处理。比如大部分小伙伴的代码是这样的:();}returncommand;}其实仔细研究一下,上面的代码是不合理的。如果在转换过程中出现异常,这里会出现数据没有转换的情况。这在理论上是一个RuntimeException,但是org.apache.commons.beanutils.BeanUtils``使用了Exception,所以你必须try...catch它,但是catch`代码有可能只写了日志记录,这可能会导致逻辑问题(需要抛出异常回滚事务)。这时候可以使用com.feilong.core.bean.BeanUtilpublicContactCommandtoContactCommand(ContactCommandcommand){com.feilong.core.bean.BeanUtil.copyProperties(command,this);returncommand;}当然如果你确定了类型复制对象的相同属性名是一致的,可以使用PropertyUtil,可以有效避免不必要的类型转换,提高效率,而且代码简洁,内部封装了自定义的BeanOperationException(RuntimeException)。如果需要特殊处理,你仍然可以try...catch...4。当有丰富的javadoc调用一个方法时,你可以清楚地感知这个方法的功能、例子、解释点、参数、返回值、异常等信息。源码示例:/***计算两次之间的天数(绝对值)。**描述:
***value=两次之间的毫秒差的绝对值/{@linkTimeInterval#MILLISECOND_PER_DAY}*
*
**示例:
*****DateExtensionUtil.getIntervalDay(*toDate("2008-08-24",COMMON_DATE),*toDate("2008-08-27",COMMON_DATE))=3**DateExtensionUtil.getIntervalDay(*toDate("2016-08-2112:00:00",COMMON_DATE_AND_TIME),*toDate("2016-08-2211:00:00",COMMON_DATE_AND_TIME))=0**DateExtensionUtil.getIntervalDay(*toDate("2016-08-21",COMMON_DATE),*toDate("2016-08-22",COMMON_DATE))=1**DateExtensionUtil.getIntervalDay(*toDate("2016-02-28",COMMON_DATE),*toDate("2016-03-02",COMMON_DATE))=3**DateExtensionUtil.getIntervalDay(*toDate("2016-08-31",COMMON_DATE),*toDate("2016-09-02",COMMON_DATE))=2****
**@paramdate1*date1*@paramdate2*date2*@return如果date1
为空,抛出{@linkNullPointerException}
*ifdate2
为空,抛出{@linkNullPointerException}*@see#getIntervalTime(Date,Date)*@see#getIntervalDay(long)*@since1.6.0*/publicstaticintgetIntervalDay(Datedate1,Datedate2){returngetIntervalDay(getIntervalTime(date1),date2));}如果你使用maven,直接右键点击依赖的jar,maven-->downloadjavadocordownloadsources会自动下载四、Maven使用配置1、如果是导入jar包到项目下载地址:https://github.com/venusdrogon/feilong-platform/tree/repository/com/feilong/platform/feilong-core2。如果你是Maven构建pom.xml,引入feilong-core和仓库地址....2.1.0....属性>....feilong-repositoryhttps://raw.github.com/venusdrogon/feilong-platform/repository存储库>。.......com.feilong.platformfeilong-core${version.feilong-platform}........3.feilong-util-all(全家桶,包含IO操作、Net操作、Json等工具)pom.xml引入feilong-util-all和仓库地址....2.1.0........feilong-repositoryhttps://raw.github.com/venusdrogon/feilong-platform/repository........com.feilong.platformfeilong-util-all${version.feilong-platform}........五、f??eilong依赖的第三方包1.maven依赖org.apache.commonscommons-lang33.6org.apache.commonscommons-collections44.1commons-beanutilscommons-beanutils1.9.32.也可以自己下载:commons-lang3官方地址:http://commons。apache.org/proper/commons-lang/download_lang.cgimaven地址:http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22commons-lang3%22%20AND%20g%3A%22org.apache.commons%22commons-collections4官方地址:http://commons.apache.org/proper/commons-collections/download_collections.cgi官方地址:http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22commons-collections4%22%20AND%20g%3A%22org.apache.commons%22commons-beanutils官方地址:http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgimaven地址:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22commons-beanutils%22%20AND%20a%3A%22commons-beanutils%226.飞龙核心API大纲7.参考飞龙-核心:http://feilong-core.mydoc.io/