lombok的简单介绍和使用方法
这是上周在群里发现有人推荐lombok,他说是神器,当时就引起了我的好奇,然后下班回来我就看了看官网介绍(菜鸟英语水平),这就是难点了,然后就是大概了解了一下,就在网上查了查相关资料,周末的时候自己试了试,现在来做个总结:
官网:http://projectlombok.org/ ;进去就有一个几分钟的视频介绍,不过是英语;还有相关的文档等。
lombok简介:就是通过@Data注解的方式省去了我们平时开发定义JavaBean之后,生成其属性的构造器、getter、setter、equals、hashcode、toString方法;但是,在编译时会自动生成这些方法,在.class文件中。(我就不多介绍了。。。)
要使用lombok,我们需要安装配置lombok,首先下载lombok.jar包:https://projectlombok.org/download.html
安装:
在eclipse中安装使用:(其他开发工具我没弄)
打开eclipse.ini文件,在最后添加如下两行:
-javaagent:[lombok.jar所在路径]
-Xbootclasspath/a:[lombok.jar所在路径]
然后重启eclipse。
lombok 注解:
lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
文档地址:http://projectlombok.org/features/index.
下面介绍几个常用的 lombok 注解:
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
在使用之前,我们需要导入相应的包:
下面来瞅瞅代码:
1、当我没有使用lombok时:
import java.io.Serializable; import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import lombok.Data; public class TestLombok implements Serializable{ private static final long serialVersionUID = 5071239632319759222L;
private static final Logger logger = LoggerFactory.getLogger(TestLombok.class); private String name;
private String gender;
private int age;
}
下面我们来看看其结构图:

从图上可以发现,没有相应的getter,setter等方法。
2、下面我们再来看看加了@Data 注解之后
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import lombok.Data; @Data
public class TestLombok implements Serializable{ private static final long serialVersionUID = 5071239632319759222L;
private static final Logger logger = LoggerFactory.getLogger(TestLombok.class); private String name;
private String gender;
private int age;
}
看看结构图会是什么样子?

从上图可以很明显的发现,加了@Data 注解之后,多了对应的getter,setter等方法。(是不是很简单,笑~~)那么我们再来简单的测试下看看能不能用吧?
@Test
public void lombok(){
TestLombok lombok = new TestLombok();
lombok.setName("lombok");
lombok.setGender("noGender");
lombok.setAge(99);
System.out.println(lombok.getName()); }
运行结果:

事实证明,这个是有作用的,那么对lombok,我就介绍到这儿了。下面说说我觉得的优缺点吧。
优点:
1、首先,大家都看到了,这是一个很方便的工具,省去了我们不少的操作,特别是在类的属性很多的时候,代码看上去也很简洁。
2、其次,也避免了我们在修改属性时,忘记修改方法的错误。
缺点:
1、虽然代码看上去很简洁,但是降低了源代码文件的可读性和完整性(你没发现看上去怪怪的吗,O(∩_∩)O哈哈哈~)
2、不支持多种参数构造器的重载。
其他方面的影响本人暂时还不知道,坐等其他大佬来指教,谢谢!
lombok的简单介绍和使用方法的更多相关文章
- lombok 注解简单介绍
一.Lombok 的简单介绍和使用 Lombok是一个可以帮助我们简化 Java 代码编写的工具类,通过采用注解的方式简化了 JavaBean 的编写,使我们写的类更加简洁. 1. 添加 Lombok ...
- CSRF简单介绍及利用方法-跨站请求伪造
0x00 简要介绍 CSRF(Cross-site request forgery)跨站请求伪造,由于目标站无token/referer限制,导致攻击者可以用户的身份完成操作达到各种目的.根据HTTP ...
- lombok的简单介绍(1)
一.项目背景 在写Java程序的时候经常会遇到如下情形: 新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter和setter方法 lombok项目的产生就是为了省 ...
- CSRF简单介绍及利用方法
x00 简要介绍 CSRF(Cross-site request forgery)跨站请求伪造,由于目标站无token/referer限制,导致攻击者可以用户的身份完成操作达到各种目的.根据HTTP请 ...
- lombok的简单介绍
##lombok的使用 一直在使用lombok的set和get,对其他的功能用的比较少,蓦然发现这个库好用的功能不要太多啊 有必要深入理解一番. ###lombok安装 1 需要IDE支持,不然开发的 ...
- lombok的简单介绍(2)
在和idea中整合遇到这样问题,实体对象不提示lombok的get/set方法,从网上找到以下方法,分享给大家
- 关于ios的autoLayout的一些简单介绍以及使用方法
一.autoLayout的用途: 主要用于屏幕适配,尤其是出现了iphone6,plus之后. 二.怎么简单的用autoLayout呢? 点击左一,可以看到: 点击左二: 基本上要想autolayou ...
- (转)TreeSet简单介绍与使用方法
TreeSet简介 TreeSet是JAVA中集合的一种,TreeSet 是一个有序的集合,它的作用是提供有序的Set集合.它继承于AbstractSet抽象类,实现了NavigableSet< ...
- TreeSet简单介绍与使用方法
TreeSet简介 TreeSet是JAVA中集合的一种,TreeSet 是一个有序的集合,它的作用是提供有序的Set集合.它继承于AbstractSet抽象类,实现了NavigableSet< ...
随机推荐
- Android之自定义Adapter的ListView
ListView的创建,一般要具备两大元素: 1)数据集,即要映射的字符串.图片信息之类. 2)适配器,实现把要映射的字符串.图片信息映射成视图(如Textview.Image等组件),再添加到Lis ...
- 软件测试基础(软件测试分类和工具组)firebug、firepath的安装
白盒测试:需要了解内部结构和代码 黑盒测试:不关心内部结构和代码 灰盒测试:介于白盒黑盒之间 静态测试:测试时不执行被测试软件 动态测试:测试时执行被测试软件 单元测试:测试软件的单元模块 集成测试: ...
- 关于Java常见的误解
误解一:JavaScript是Java的简易版 JavaScript是一种在网页中使用的脚本语言,它的原名叫做LiveScript.JavaScript的语法与Java类似.除此之外,他们再无任何关系 ...
- 关于数据库优化1——关于count(1),count(*),和count(列名)的区别,和关于表中字段顺序的问题
1.关于count(1),count(*),和count(列名)的区别 相信大家总是在工作中,或者是学习中对于count()的到底怎么用更快.一直有很大的疑问,有的人说count(*)更快,也有的人说 ...
- MongoDB--初始
指定启动目录,以服务形式启动 Mongod --dbpath=XXXXXX --logpath=XXXXXXXX --logappend --serviceName "XXXXX" ...
- 纯CSS3美化单选按钮radio
这种纯CSS3美化单选按钮radio的方法适用于以下情况: 1.可兼容IE9以上,需要兼容IE8的要写IE的hack把样式去掉 2.只支持单选按钮radio,因为单选按钮选中样式的圆圈可以用CSS做出 ...
- python爬虫从入门到放弃前奏之学习方法
首谈方法 最近在整理爬虫系列的博客,但是当整理几篇之后,发现一个问题,不管学习任何内容,其实方法是最重要的,按照我之前写的博客内容,其实学起来还是很点枯燥不能解决传统学习过程中的几个问题: 这个是普通 ...
- Sqlserver 2005 跨数据库 导入数据
--Sqlserver 2005 跨数据库 导入数据:--SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/O ...
- 引入CSS文件的方式,以及link与@import的区别
一.引入css的方式 在HTML中引入css的方法主要有4种:行内式.内嵌式.链接式和导入式. 1.行内式 <div style="background:yellow;"&g ...
- USACO Dynamic Programming (1)
首先看一下题目: Introduction Dynamic programming is a confusing name for a programming technique that drama ...