序言各位好啊,我是会编程的蜗牛,作为java开发者 , 我们平常在开发过程中,总是希望能够尽量少敲代码 。这一方面,当然是为了偷懒,另一方面,当然也是为了代码看起来更加简洁一点,不断往编程规范上靠 。然后其中有一个插件或者说依赖吧,就是lombok,它的出现真可谓程序员的福音啊 。只要用了这个东西,我们再也不用写那一大堆重复的但确实必须的代码了 。虽然我们也可以用IDEA自动生成这些东西 , 但总归麻烦啊 。一旦这个类的属性做了一些调整,还得重新修改对应的setter/getter方法等 。当然,今天不是来说lombok的好的,而是想和各位探索一下这个东西存在的一些坑,防止大家踩坑,这个坑就让我来踩一下吧~问题再现首先,我们新建一个Dog的类,里面有name和year的属性,然后加上注解@Data,然后进行编译,可以看到class文件里面自动生成了很多代码 。
文章插图
文章插图
里面我数了一下,一共生成了6种类型的代码,有【空构造方法】、【Get/Set方法】、【equals方法】、【canEqual】、【hashCode】、【toString】方法 , 我们想要的和不想要的,通过给我们生成了 。 事情到这里本来是可以结束了,但是我们的java实在太博大精深了,区区这点注解,还不能完全生成所有的代码 。平常最常用的应该就是@Data注解了,但是其实还有好多其他的注解 , 比如@Builder , 这是一个可以生成有参构造函数的注解,刚才生成的一般也能够满足我们的需求了,但是对于需要设置有参构造函数的情况 , 只用@Data就不够了 。那我们看下使用@Builder , 生成的代码是怎么样的 。
文章插图
文章插图
可以看到,一共生成了3个大的代码,一个是有参构造函数,一个是静态方法,一个是静态类 。那么 , 如果我们要使项目同时生成这些代码呢?大家可能会说,把两个注解都加上呗 。那么,我们来试一下 。
文章插图
文章插图
可以看到,虽然生成的代码有所增加 , 但少了一个关键的无参构造方法,这可是一个很关键的构造方法,在好的框架里都会调用这个无参构造方法的 。如果没有,肯定会报一大堆错误的 。 那么,我们该怎么做呢?解决方法
- 既
文章插图
- 既
文章插图
文章插图
- 那
文章插图
文章插图
总结lombok虽然大大简化了我们的开发,但还是得注意其中那些注解的问题,不然一不小心就容易掉进这种坑里 。可以多看看编译出来的class文件,这样能更好的理解这个框架 。 推荐阅读 点击标题可跳转Tabby,一款老外都在用的 SSH工具 , 竟然还支持网页操作IDEA 调试起来太费劲?你需要了解这几招!
推荐阅读
- 疯狂骑士团热门攻略是什么
- 梁山好汉是真的吗 真实的梁山好汉36人
- 栗棕色和咖啡色对比-染栗棕色,咖啡色还是其他色好?
- 麻将卡五怎么玩(麻将的五搭是什么意思)
- 支付宝蚂蚁庄园10月20日答案是什么
- 迷你世界10月19日激活码是多少
- 黑色沙漠手游10月19日微信每日一题答案是什么
- ysl1966好看吗_ysl1966试色
- 我说HashMap初始容量是16,面试官让我回去等通知
- 新剑侠情缘10月19日微信每日一题答案是什么