Lombok

Lombok项目是一个Java库,通过注解,来消除Java类中的大量样板代码。比如常见的Getter&Setter、toString()、构造函数等等。

看个例子,以前我们构建一个java是实体类的做法,

public class Entity {private int id;    private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}   }

每个实体类都有着get和set方法,可能还要加上构造方法、equals、hash等方法,这些代码就是上述所说的样板代码。那么Lombok是怎么做的呢,如下,

@Datapublic class Entity {private int id;    private String name; }

我们看下生成了什么方法,本人使用的eclipse,ctrl+o 查看就行了。

是不是都有了。你可以去看下Lombok包下面,还有很多的注解使用。除了类上,再多说几个例子,感受下它的魅力。

@NonNull:可以用来避免空指针,比如构造方法的入参。

public Entity(int id,  @NonNull String name) {this.id = id;this.name = name;}  

@Cleanup:通常用于流的关闭作用,如

@Cleanup FileInputStream inStream = new FileInputStream(in);

@AllArgsConstructor:生成全参构造函数。

。。。。。。。

哇!太方便了,以后项目都用它了!

建议点

上面说了Lombok的优势,确实帮我们平常开发节省了很多代码。但是每个东西的存在必然是双面的,不存在完美的说话。

1、Lombok的使用是必须要安装插件的,如果有一个同事使用了Lombok并安装了插件,那不好意思,其他的同事你得必须要安装,要不然你拉取代码 run就报错,编译失败。

2、作为分布式项目,如果有一个项目中使用了Lombok打成jar包供其他的项目去使用,那你其他的项目也得安装Lombok插件,对项目的侵入性高。

3、Lombok给我们生成的setget等方法是在编译阶段才给生成的,在开发过程中有代码的缺失,可能查找问题不是很方便。

4、JDK的升级,如果出现的特性在Lombok中不支持,那会有影响的,所以不要使用了Lombok的不要盲目的升级 JDK。

。。。。你们还有遇到什么其他的问题吗

上面总结了Lombok的优缺点,使用上方便了,并不能说明没有问题存在。

所以在项目的开发过程中,我不是不推荐大家使用,最重要的是要去评估它带来的问题,可以的话就去用吧。

eclipse lombok插件安装_如果你是Java架构师或项目经理,项目技术会允许使用Lombok吗?相关推荐

  1. 马士兵java框架_马士兵java架构师

    马士兵java架构师 开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我 ...

  2. eclipse lombok插件安装_你干啥的?Lombok

    01.Lombok 的自我介绍 Lombok 在官网是这样作自我介绍的: Project Lombok makes java a spicier language by adding 'handler ...

  3. eclipse lombok插件安装_便捷开发,解放双手,lombok插件

    lombok是一款Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO). 在实际开发中,是不是发现经常需要变更model类.vo类.dto等一些实体类,随便 ...

  4. idea lombok插件安装_开发效率不高?墙裂推荐这十款精选 IntelliJ IDEA 插件

    作者 | 雷架来源 | 爱笑的架构师(ID:DancingOnYourCode) 头图 |  CSDN 下载自东方IC 俗话说:"工欲善其事必先利其器",小主从项目实战的角度在众多的idea插件中挑选 ...

  5. 年薪百万的java架构师跟普通程序员的技术水平差距在哪里?

    前几天在论坛看到这么一个问题,搞Java的程序员年薪40w是什么水平?一下勾起了小编的兴趣,今天就来简单分析下,到底是个什么水平. 税前还是税后? 那么我们先来搞清楚,年薪40W,这个是税前还是税后. ...

  6. java trimleft函数_常用函数-Java架构师必看

    Abs(number) 取得数值的绝对值. Asc(String) 取得字符串表达式的第一个字符ASCII 码. Atn(number) 取得一个角度的反正切值. CallByName (object ...

  7. java crm视频,Java架构师进阶篇CRM项目视频教程

    ├源代码.rar ├<01_CRM项目> │  ├<0908> │  │  ├ │  │  │  ├01-crm介绍.avi │  │  │  ├02-crm框架.avi │ ...

  8. java 分布式 redis缓存技术_JAVA架构师系列课程分布式缓存技术Redis权威指南,资源教程下载...

    课程名称 JAVA架构师系列课程分布式缓存技术Redis权威指南,资源教程下载 课程目标 本课程从0基础开始,对redis的方方面面进行细粒度的讲解:包括基础操作.高级命令.各种集群模式.动态增减节点 ...

  9. Java架构师和java工程师的区别是什么?架构师薪资是多少?

    java架构师,现在很多新手都知道的名词,这个职位最早在IT领域是没有的,是由于最近几年来,互联网的迅猛发展,网站对于对数据量和高并的活跃度发所引发的需求,引起了众多传统的技术人员的力不从心,越来越多 ...

最新文章

  1. 【转】UIColor对颜色的自定义
  2. 一个html文件放到服务器访问,访问云服务器里面的html文件
  3. android中matrix的单位,Android中canvas和matrix之间的关系是什么?
  4. 神策“营销云·微信生态”全面开放,限时免费申请通道开启!
  5. C++words search单词搜索的算法实现(附完整源码)
  6. Synchronized结合Java Object对象中的 wait,notify,notifyAll
  7. Sonar-project.properties配置
  8. scp跨主机拷贝工具
  9. 为旗下硬件产品服务,LG推出基于SLAM技术的3D摄像头
  10. 【轻量级网络】MobileNet-v2详解
  11. Emacs编辑Nginx
  12. 计算器代码编程c#语言,C#计算器编写代码
  13. 必须重新启动计算机才能更改应用,必须重新启动计算机才能应用这些更改
  14. 面向工业物联网的拍赫兹通信
  15. docker查看映射端口
  16. ReadFile WriteFile DO_DIRECT_IO 中的IRP操作
  17. ngrok 使用-国外版
  18. 《木偶奇遇记》读后感
  19. 工业智能网关BL110应用之30:实现三菱 PLC FX3U 接入亚马逊云平台
  20. java wmf 转 svg_java处理word公式(wmf格式转换成svg)

热门文章

  1. c语言中预处理指令的作用,C语言中常用预处理指令
  2. window mysql proxy_window下mysql-proxy简单使用
  3. C语言包含头文件时:#include< > 与 #include ““的区别
  4. python 虚拟环境 virtualenv virtualenvwrapper的使用方法、命令
  5. python中yield函数的作用?
  6. 【深度学习的数学】接“2×3×1层带sigmoid激活函数的神经网络感知机对三角形平面的分类训练预测”,输出层加偏置b
  7. 【深度学习的数学】超平面是什么?(自由度比空间维度小1)
  8. yolo-v2 v3实现笔记 mAP:mean average precision 平均精度均值
  9. centos7 安装rabbitMq
  10. c++ 结构体构造函数使用总结 附一道经典模拟题