首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【译】利用Lombok消除重复代码

从我开始写Java以来,已经写了几千行代码了,其中大概50%都是样板代码,在转型之前,我就这么一直毫无怨言的写着。...而最近两年,我不再Java了,转而开始写一些Python,Go和JavaScript的代码。这时我才感觉到Java中的重复的样板代码是多么令人沮丧。...Lombok是在Java注解处理器和几个编译时注解的帮助下工作的,它将注入额外的Java字节码来帮助我们处理重复代码。...代码拿来! talk is cheap, show me your code.程序员就应该拿代码说话。下面我们就来看一个完整的例子。...你需要有一个中间态的代码来使文档正确表示。此外,有时候你可能会想看看Lombok生成的代码到底是什么样的。幸好Lombok提供了“delomboking”,用来将Lombok转换成Java源代码

1.1K30

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

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

53030

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

ContentType.APPLICATION_JSON) .execute().returnContent().asString(); } } 这样做能够基本满足需求,但是存在一些问题: 处理逻辑互相之间有重复...,稍有不慎就会出现Bug 处理流程中字符串拼接、加签和发请求的逻辑,在所有方法重复 实际方法的入参的参数类型和顺序,不一定和接口要求一致,容易出错 代码层面参数硬编码,无法清晰进行核对 3 使用接口和反射优化代码...这样做的好处是开发的时候会方便直观很多,然后将逻辑与细节隐藏起来,并且集中放到了一个方法当中,减少了重复,以及维护当中bug的出现。...3.4 在代码中的应用 @BankAPI(url = "/bank/createUser", desc = "创建用户接口") @Data public class CreateUserAPI extends...= "S", length = 11) //注意这里的order需要按照API表格中的顺序 private String mobile; @BankAPIField(order = 3,

50520

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

ContentType.APPLICATION_JSON)                 .execute().returnContent().asString();     } } 这样做能够基本满足需求,但是存在一些问题: 处理逻辑互相之间有重复...,稍有不慎就会出现Bug 处理流程中字符串拼接、加签和发请求的逻辑,在所有方法重复 实际方法的入参的参数类型和顺序,不一定和接口要求一致,容易出错 代码层面参数硬编码,无法清晰进行核对 1.3 使用接口和反射优化代码...这样做的好处是开发的时候会方便直观很多,然后将逻辑与细节隐藏起来,并且集中放到了一个方法当中,减少了重复,以及维护当中bug的出现。...1.3.4 在代码中的应用 @BankAPI(url = "/bank/createUser", desc = "创建用户接口") @Data public class CreateUserAPI extends... = "S", length = 11) //注意这里的order需要按照API表格中的顺序     private String mobile;     @BankAPIField(order = 3,

84900

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

在《代码大全》书中对代码的圈复杂度规则进行了说明,具体如下: 从函数第一行开始,一直往下看程序; 遇到以下关键字或者同类的字那么圈复杂度加1;关键字如下:if,while,for,end,or,repeat...为了解决因为代码圈复杂度产生的代码质量问题,C++11提供了type_tratis类型萃取功能,在一定程度上可以消除冗长的代码分支语句,降低圈复杂度进而提升代码的可维护性。...程序运行结果如下: is_base_of: int, int: false A, A: true A, B: true A, const B: true A&, B&: false B, A: false (3)...type>::value<<std::endl; //移除所有维度 std::cout<<std::is_same<int,std::remove_all_extents<int[][2][3]...使用std::enable_if可以实现一个强大的重载机制,充分利用可以减少或者消除圈的复杂度。如:根据不同的数据基本类型转换为string进行输出。

1.6K10

Metalama简介2.利用Aspect在编译时进行消除重复代码

对于Metalama中的Aspect分为以下两种API 1.Aspect基础API TypeAspect 对类型进行编译时代码插入,见示例3 MethodAspect PropertyAspect ParameterAspect...当前是第3次调用....PropertyChanged; } 但是这里,要将自动属性进行展开,并产生大量字段,对于这里的重复代码,我们可以用Metalama进行处理,我们最终要代码实现为如下: public class MyModel...源代码:https://github.com/chsword/metalama-demo/tree/main/src/PropertyDemo 示例3对类型:进一步实现INotifyPropertyChanged...源代码:https://github.com/chsword/metalama-demo/tree/main/src/TypeDemo 减少代码入侵 上面的示例3中,其实对方法还是有一定入侵的,至少要标记一个

37030

Metalama简介2.利用Aspect在编译时进行消除重复代码

对于Metalama中的Aspect分为以下两种API 1.Aspect基础API TypeAspect 对类型进行编译时代码插入,见示例3 MethodAspect PropertyAspect ParameterAspect...当前是第3次调用....PropertyChanged; } 但是这里,要将自动属性进行展开,并产生大量字段,对于这里的重复代码,我们可以用Metalama进行处理,我们最终要代码实现为如下: public class MyModel...源代码:https://github.com/chsword/metalama-demo/tree/main/src/PropertyDemo 示例3对类型:进一步实现INotifyPropertyChanged...源代码:https://github.com/chsword/metalama-demo/tree/main/src/TypeDemo 减少代码入侵 上面的示例3中,其实对方法还是有一定入侵的,至少要标记一个

540101

3 个绝招 轻松解决 代码重复

今天,我就从业务代码中最常见的三个需求展开,聊聊如何使用 Java 中的一些高级特性、设计模式,以及一些工具消除重复代码,才能既优雅又高端。通过今天的学习,也希望改变你对业务代码没有技术含量的看法。...利用工厂模式 + 模板方法模式,消除 if…else 和重复代码 假设要开发一个购物车下单的功能,针对不同用户进行不同处理: 普通用户需要收取运费,运费是商品价格的 10%,无商品折扣; VIP 用户同样需要收取商品价格...这样一来,我们就利用工厂模式 + 模板方法模式,不仅消除重复代码,还避免了修改既有代码的风险。这就是设计模式中的开闭原则:对修改关闭,对扩展开放。 2....利用注解 + 反射消除重复代码 是不是有点兴奋了,业务代码居然也能 OOP 了。我们再看一个三方接口的调用案例,同样也是一个普通的业务逻辑。...3. 利用属性拷贝工具消除重复代码 最后,我们再来看一种业务代码中经常出现的代码逻辑,实体之间的转换复制。

21610

Swift2转Swift3

接触swift 已经有一年多的时间了,由最初的OC代码转为 swift 代码,然后从 swift 2.3 转为 swift 3。...每次的转换都感觉是将项目整个的翻新了一遍,每次的转换代码都是一次改朝换代。 以下是在代码改朝换代的时候的一些心得: 在将 OC 代码转换为 swift 代码的时候,我当时使用的是 xcode7.3。...所以: 一、在更新swift的时候,在swift文件中,几乎是不会联想的,动则就是整个屏幕中的代码全是白颜色,然后,类名,方法名,都是硬敲出来的。...二、既然是改写 swift 代码,那么就是对swift 不是太了解 三、针对一些第三方库,期望改为swift版。...swift 编程,swift代码编写方面确实是能够提高效率,尤其是swift 是面向协议编程,其灵活性不可言喻,并且在 swift 的强语言下,swift 项目是相当稳定的。

1.9K50
领券