IDEA的一个小细节可以帮你很好地避开Java开发中的坑

Inspections 是IDEA中很重要的一个功能,它可以对代码进行检查,帮助开发者提前发现代码中隐藏的问题

如下示例,开发中最简单也最容易忽略的一个问题,就是将一个对象的属性更新为自身的同一个属性,在国内开发者奉行的业务分层架构中,将Java Bean拆成了DTO,DO, POJO, VO等对象,而在透传的过程就需要进行不同对象的转换,如果是纯手写进行属性赋值的话,在转换的过程中很有可能会出现疏漏,将对象属性更新成自身的属性。

解决方案1 Bean copy

其本质是通过反射获取Java Bean中字段,然后逐个赋值,避免的手动赋值可能造成的错误,但是缺点也很明显,对于多层嵌套性能实在不是很好。

解决方案2 MapStruct

具体使用参考官网[ ](MapStruct -- Java bean mappings, the easy way!)

其原理就是通过插件自动生成不同类型Java Bean之间转换的方法实现,不是通过反射实现的,而是使用插件,在编译期生成相关业务的字节码实现,所以性能还不错。

解决方案3 开启IDEA中的代码检查

IDEA setting -> Inspection -> JavaBean issues: 选中Property value set to itself选项,然后应用

然后在开发过程中就会有警告提示,如果警告标记不够明显,可以改成error级别。 但是官方提供的检查项存在问题,无法检测lombok处理的Java Bean,所以我自己写了个插件,对lombok进行了很好的支持。

Rest-Link - IntelliJ IDEs Plugin | Marketplace

安装插件后会自动启用该检查项,如果想要关闭,进入Inspections 找到这一项手动关闭即可。

另外,代码检测只是该插件的一个附加功能,这个插件其实为rest开发者服务的,参考的RestFul-Tool插件,移除了一些不是很常用的难以维护的功能,只保留了接口查询和快速定位,同时将openFeign也包含了进来,对相同url提供快捷导航的入口,便于开发者进行review,感兴趣的可以来试一下

相关推荐
色空大师2 分钟前
23种设计模式
java·开发语言·设计模式
闲人一枚(学习中)3 分钟前
设计模式-创建型-建造者模式
java·设计模式·建造者模式
2202_7544215420 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
蓝染-惣右介23 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
小林想被监督学习24 分钟前
idea怎么打开两个窗口,运行两个项目
java·ide·intellij-idea
HoneyMoose26 分钟前
IDEA 2024.3 版本更新主要功能介绍
java·ide·intellij-idea
我只会发热27 分钟前
Java SE 与 Java EE:基础与进阶的探索之旅
java·开发语言·java-ee
是老余29 分钟前
本地可运行,jar包运行错误【解决实例】:通过IDEA的maven package打包多模块项目
java·maven·intellij-idea·jar
crazy_wsp29 分钟前
IDEA怎么定位java类所用maven依赖版本及引用位置
java·maven·intellij-idea
.Ayang31 分钟前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型