首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    利用注解 + 反射消除重复代码,妙!

    作者:Leilei Chen 链接:https://llchen60.com/利用注解-反射消除重复代码/ 1.1 案例场景 假设银行提供了一些 API 接口,对参数的序列化有点特殊,不使用 JSON...,稍有不慎就会出现Bug 处理流程中字符串拼接、加签和发请求的逻辑,在所有方法重复 实际方法的入参的参数类型和顺序,不一定和接口要求一致,容易出错 代码层面参数硬编码,无法清晰进行核对 1.3 使用接口和反射优化代码....sorted(Comparator.comparingInt(a -> a.getAnnotation(BankAPIField.class).order())) //根据注解中的...这样做的好处是开发的时候会方便直观很多,然后将逻辑与细节隐藏起来,并且集中放到了一个方法当中,减少了重复,以及维护当中bug的出现。...需要按照API表格中的顺序 private String mobile; @BankAPIField(order = 3, type = "N", length = 5) private

    88930

    利用注解 + 反射消除重复代码,妙!

    ,稍有不慎就会出现Bug 处理流程中字符串拼接、加签和发请求的逻辑,在所有方法重复 实际方法的入参的参数类型和顺序,不一定和接口要求一致,容易出错 代码层面参数硬编码,无法清晰进行核对 3 使用接口和反射优化代码....sorted(Comparator.comparingInt(a -> a.getAnnotation(BankAPIField.class).order())) //根据注解中的...这样做的好处是开发的时候会方便直观很多,然后将逻辑与细节隐藏起来,并且集中放到了一个方法当中,减少了重复,以及维护当中bug的出现。...3.4 在代码中的应用 @BankAPI(url = "/bank/createUser", desc = "创建用户接口") @Data public class CreateUserAPI extends...需要按照API表格中的顺序 private String mobile; @BankAPIField(order = 3, type = "N", length = 5) private

    79320

    利用注解 + 反射消除重复代码(Java项目)

    ,稍有不慎就会出现Bug 处理流程中字符串拼接、加签和发请求的逻辑,在所有方法重复 实际方法的入参的参数类型和顺序,不一定和接口要求一致,容易出错 代码层面参数硬编码,无法清晰进行核对 1.3 使用接口和反射优化代码...            .sorted(Comparator.comparingInt(a -> a.getAnnotation(BankAPIField.class).order())) //根据注解中的...这样做的好处是开发的时候会方便直观很多,然后将逻辑与细节隐藏起来,并且集中放到了一个方法当中,减少了重复,以及维护当中bug的出现。...1.3.4 在代码中的应用 @BankAPI(url = "/bank/createUser", desc = "创建用户接口") @Data public class CreateUserAPI extends...需要按照API表格中的顺序     private String mobile;     @BankAPIField(order = 3, type = "N", length = 5)     private

    1.2K00

    【C++11】消除重复, 提升代码质量---type_tratis

    等; switch中case语句的每种情况都新增一个圈复杂度。...为了解决因为代码圈复杂度产生的代码质量问题,C++11提供了type_tratis类型萃取功能,在一定程度上可以消除冗长的代码分支语句,降低圈复杂度进而提升代码的可维护性。...1 基本的type_traits C++ 11之前通过const或者enum枚举定义一个编译期常量的类型,在C++11中,则不需要这么定义,只需要从std::integral_constant进行派生即可...,有些人可能对std::is_const::value这个返回值false有疑问,其实const int *是说指针是一个常量,但是指向的内存地址中的值是可以变化的,并不是常量。...使用std::enable_if可以实现一个强大的重载机制,充分利用可以减少或者消除圈的复杂度。如:根据不同的数据基本类型转换为string进行输出。

    2.3K10

    内存受限下找出亿级整数集合中的不重复元素

    本文将以在内存不足的情况下,找出亿级规模整数集合中的不重复元素为例,探讨一种基于Bloom Filter的数据结构的解决方案。问题分析假设有一个包含2.5亿个整数的集合,需要找出其中不重复的整数。...但内存无法容纳全部的2.5亿个元素。如果直接对集合进行遍历,内存会溢出。一个直观的想法是分批读取数据,每次处理一小部分,并用一个 HashSet 来计数。...利点是只需要一个二进制向量即可表示一个集合,不需要存储元素本身。并可以实现间隔查询,不需要对集合进行遍历。理论上,2.5亿个元素只需要225MB的Bloom Filter,远小于元素本身的内存占用。...具体地,思路是:初始化一个225MB大小的Bloom Filter分批读取整数数据,每次处理1万个对每批数据,将元素存入Bloom Filter再次遍历数据,检查每个元素是否在Bloom Filter中命中未命中的元素即为不重复元素代码实现...二次遍历时只检查元素是否在Bloom Filter中,而不需要加载集合本身。总结对于内存无法容纳的超大数据集,使用Bloom Filter可以实现高效地去重和查询。

    67430

    消除JAVA编程中的坏味道

    ,这个readResolve方法仅利用公有API创建外围类实例,最大程度上消除了序列化机制中语言本身之外的特征....或者正常访问锁定的域中,或者放到并发的集合中 当多个线程共享可变数据时,每个读或者写的线程都必须执行同步,否则就会造成活性失败和安全性失败 避免过度同步 为了避免活性失败和安全性失败,在一个被同步的方法或者代码块中...为了继承而设计类会有一些实质性的限制,需要消除自用特性:case将每个可覆盖方法的代码移到一个私有的辅助方法中....>(表示某种未知对象的集合):通配符类型是安全的因为不能将任何元素除了null放到collection中,除了collection可以放入元素....(是指在instanceof右边) 消除非受检警告 在尽可能小的范围内使用@supressWarnings,永远不要在类上使用.

    1.4K21

    java之学习去除ArrayList集合中重复字符串元素方式

    结果示意图: 前言: 很多时候或者很多项目中都会遇到集合中重复的部分,如何去除这些重复的部分呢?接下来小编就用创建新集合的方式去除集合中重复的部分。...原理: 原理就是创建新的集合 把旧的集合复制到新的集合中来,做一个判断,如果插入新的集合存在旧的集合中的元素就抛弃,如此循环添加,就可以去除掉重复的元素 步骤: 先需要一个已知的旧的集合中存在重复的元素...创建新的集合 获取迭代器,然后判断旧的集合中是否存在元素 把旧集合中的每个元素都临时记录储存 判断新集合中是否存在旧集合中的元素,如果不存在则添加到新集合中 打印新集合...具体的案例代码: ​​package com.fenxiangbe.list; import java.util.ArrayList; import java.util.Iterator; public...l1.contains(s)){ l1.add(s); } } return l1; } } 欢迎关注我的大鱼号:吾爱乐享 微信公众号:vipjc5

    1.3K20

    【Python】集合 set ③ ( 集合常用操作 | 清空集合元素 | 获取两个集合的差集 | 消除两个集合的差集 | 获取两个集合的并集 | 计算集合元素数量 | 集合遍历 )

    2, 3} {2, 3, 4} {1} 三、消除两个集合的差集 - 集合 A 中删除与集合 B 相同的元素 消除两个集合的差集 : 在集合 A 中删除与集合 B 相同的元素 ; 集合A.difference_update...(集合B) 集合 A 被改变了 , 原来的 集合 A 中删除了与集合 B 相同的元素 ; 集合 B 不变 ; 代码示例 : """ 集合 代码示例 """ num1 = {1, 2, 3} num2...消除参照集合 不变 执行结果 : {1} {2, 3, 4} 四、获取两个集合的并集 - 集合 A 与集合 B 合并 获取两个集合的并集 : 将 集合 A 与集合 B 中的元素合并到一个新集合中 ; 集合...A.union(集合B) 该函数会得到一个新集合 , 原来的 集合 A 和 集合 B 都不变 ; 代码示例 : 合并时 , 如果有重复元素 , 自动去重 , 每个元素只保留一个 ; """ 集合 代码示例...虽然写了 6 个元素 , 但是有重复元素 , 在集合中 重复元素 只能算作一个元素 , 因此 {1, 2, 3, 1, 2, 3} 与 {1, 2, 3} 是等价的 , 元素个数都是 3 ; """ 集合

    1.3K30
    领券