函数式编程实战

项目中,有一个需求,场景是这样的,有很多类型的数据比如:客运站,火车站,高速站等,他们都分别存在不同的数据库表中,在使用excel往这些表中导入数据的时候,需要做去重验证(假设是根据name1和name2字段去重) 1.首先想到的是,在每个Controller层,查询对应的表进行对比,校验是否有重复 由于有八九张表,写着发现除了Entity和tableName不一样,查重逻辑几乎一模一样 2.怎样才能把逻辑部分提取出来复用呢,这样就不用重复劳动了。问题的关键是需要提取出Entity列表中的name1和name2,组合成新的数据集合,这样就把不同类型的数据整合成一类:StationCheckBo.class 这里可以可以使用反射进行获取: ``` protected <T, E> StationCheckResultBo checkRepeat(List datas, StationCheckMapper stationCheckMapper, Class clazz) { List checkBos = IntStream.range(0, datas.size()).mapToObj(i -> new StationCheckBo(i, (String) ReflectUtil.getFieldValue(datas.get(i), "fieldName"), (String) ReflectUtil.getFieldValue(datas.get(i), "fieldName"))) .toList();

函数式接口

函数式接口 最近看Hutool代码的时候,发现作者源码中使用了很多函数式接口 比如: ``` public static <T extends CharSequence, X extends Throwable> T notEmpty(T text, Supplier errorSupplier) throws X { if (StrUtil.isEmpty(text)) { throw errorSupplier.get(); } return text; }

奥德彪

我不敢把房间打扫得太干净,我怕房间只剩下我一个垃圾。 

常用的小工具

常用的小工具 图片压缩 https://www.ticompressor.com/online/ 抠图  https://img.ly/showcases/cesdk/background-removal/web 矢量图1  https://www.iconfont.cn/ 矢量图2  https://yesicon.app/ 开源的画流程图工具  https://pddon.com/ 文字识别  https://ocr.plantree.me/ocr bt工具  https://anybt.eth.limo/#/ 跨平台离线共享文件app  https://localsend.org/#/ 在线画板  https://pictode.com/ 通过网卡MAC地址,可以查到厂商和网卡信息  https://maclookup.app/ 下载工具  https://www.freedownloadmanager.org/zh/ AI图文生成  https://sdxlturbo.ai/ 工具库在线检索  https://www.apigpts.dev/tools gradle插件镜像1  https://mirrors.cloud.tencent.com/gradle/ gradle插件镜像2  https://services.gradle.org/distributions/ 熊猫搜书   https://xmsoushu.com/#/

ViewModel原理

先下结论 ViewModel的作用,为UI层提供数据,并且能较长时间保存数据直到Activity最终Finished,什么叫最终Finished呢,我的理解是Activity被内存彻底回收。