在java刚开始学习的时候,首先就会学习封装、继承和多态,就拿封装来说,封装就是为了保护数据安全而将实体类内部数据保持为私有状态,如果外部程序想要访问里面的数据就必须调用此实体类提供的相关数据接口,这样既保证了数据安全又保证了对数据的访问控制。

  比如有一个Book类,里面有一个bookName字段,那么在实体类里面如果要实现封装的话就要这样:

public class Book{
private String bookName;
public void setBookName(String bookName){
this.bookName=bookName;
}
public String getBookName(){
return this.bookName;
}

  这里的getBookName和setBookName就是数据访问接口,如果要得到数据必须调用getBookName,要想设置数据必须调用setBookName。在类熟悉比较少(1-3)的情况下自己写或者通过eclipse和Idea的生成方法可以很轻松的实现,但是如果这个类的属性非常多,高达二十几个甚至更多,难道还要这样自己写吗?用IDEA的自动生成工具是可以一次性生成所有的get和set方法,但是如果后来属性名和返回值类型这些有大量改动去一个一个改动是不是会显得很麻烦,这个时候就体现出工具的重要性了,lombok就是这样一个一键生成get和set的代码方法生成工具,使用lombok后book类变成了这样:

@Data
public class Book{
private String bookName;
}

@Data是lombok的使用注解,当使用此注解后lombok会自动为实体类的属性创建get和set方法,而无需自己再去写,这也意味着属性名和值的改变我们都不再需要管了,把更多的精力放在代码开发上来创造更多的个人价值。这里是lombok的部分源码:

/**
* @see Getter
* @see Setter
* @see RequiredArgsConstructor
* @see ToString
* @see EqualsAndHashCode
* @see lombok.Value
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Data { String staticConstructor() default "";
}

@interface声明这是一个注解,Getter用于生成get方法,Setter用于生成set方法,RequiredArgsConstructor用于自动生成构造函数,ToString用于生成toString方法,EqualsAndHashCode表示自动生成equals和hashCode方法,静态构造函数默认生成" ";也就是说一个@Data就可以同时实现以上6种注解,对于我们一般的实体类来说有时候显得太臃肿,因为@Data引入了一些不必要的功能,那么怎么办呢,比如说我们只想实现get和set,这其实很简单,直接使用Getter和Setter就行了:

@Getter
@Setter
public class Book{
private String bookName;
}

这样下来代码一下就轻便了很多,也没有引入多余的功能。

lombok的基本使用方法的更多相关文章

  1. Lombok介绍及使用方法

    lombok简介 lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下. lombok的 ...

  2. Lombok介绍、使用方法和总结

    1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how ...

  3. 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法

    现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...

  4. 【转】Lombok介绍、使用方法和总结

    链接:http://www.yuanrengu.com/index.php/20180324.html 1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a ...

  5. JAVA中使用Log4j2日志和Lombok引入日志的方法

    一.简述 我们项目中既要使用lombok,又要使用log4j2时,使用日志将会更简单. 二.解决 1.引入依赖 <dependency> <groupId>org.apache ...

  6. 使用lombok 找不到方法

    在setting里面查找并设置就好了

  7. lombok安装方法

    一.介绍 lombok网址:https://projectlombok.org/download.html lombok能够在编译源码的时候自动生成getter和setter方法.即它最终能够达到的效 ...

  8. JAVA奇技淫巧简化代码之lombok

    背景 最近在做一个小功能,又不想在原有体态臃肿的项目中追加,为了调试方便并且可以快速开发就采用了springboot.由于使用了JPA,建了几个类,然后通过IDE去生成其属性的构造器.getter.s ...

  9. 插件lombok的介绍安装

    Lombok插件 介绍一个不错的Eclipse插件Lombok 该插件对Log4j简化的代码,因为不大,所以jar包也存在呢! Lombox是Eclipse的一个插件,用来自动生成Java代码,减少手 ...

随机推荐

  1. 机器学习实战基础(二十五):sklearn中的降维算法PCA和SVD(六) 重要接口,参数和属性总结

    到现在,我们已经完成了对PCA的讲解.我们讲解了重要参数参数n_components,svd_solver,random_state,讲解了三个重要属性:components_, explained_ ...

  2. IDEA搭建SpringMVC简单接口框架(Maven项目)

    1, 新建项目,选择Maven,如图一次选择,最后点击Next 2, 输入GroupId和ArtifactId,点击Next 3,根据需要选择自定义maven配置,点击Next.(①可以直接跳过) 4 ...

  3. EF实现简单的增删改查

    1.在项目中添加ADO.NET实体数据模型: 2.接着根据提示配置数据库连接,配置完毕之后项目中生成了大致如下的内容(EF6.x): 其中TestData.tt中的Consumer,Stores是创建 ...

  4. elementui 使用Form表单 的 resetForm表单功能出现的问题

    代码因为在保密机上,这里只进行描述并截取elemen文档中的代码作为参考 今天在开发一个很简单需求的时候遇到的问题,在使用elementui的表单功能,将增和改的表单进行了复用,是在表单的父组件 dr ...

  5. 深入浅出ReentrantLock源码解析

    ReentrantLock不但是可重入锁,而且还是公平或非公平锁,在工作中会经常使用到,将自己对这两种锁的理解记录下来,希望对大家有帮助. 前提条件 在理解ReentrantLock时需要具备一些基本 ...

  6. 手写简易的Mybatis

    手写简易的Mybatis 此篇文章用来记录今天花个五个小时写出来的简易版mybatis,主要实现了基于注解方式的增删查改,目前支持List,Object类型的查找,参数都是基于Map集合的,可以先看一 ...

  7. OSCP Learning Notes - Netcat

    Introduction to Netcat Connecting va Listening Bind Shells Attacker connects to victim on listening ...

  8. 为啥Underlay才是容器网络的最佳落地选择

    导语: 几年前,当博云启动自研容器网络研发的时候,除了技术选型的考虑,我们对于先做 Underlay 还是 Overlay 网络也有过深度的讨论.当时的开源社区以及主流容器厂商,多数还是以 Overl ...

  9. 题解 CF1359A 【Berland Poker】

    题意 给出 \(n,m,k\) ,表示 \(k\) 名玩家打牌,共 \(n\) 张牌,\(m\) 张王,保证 \(k|n\) ,记得分为 拿到最多王的玩家手中王数 \(-\)拿到第二多王的玩家手中的王 ...

  10. canvas : 几个入门需要的基本概念

    这段时间做项目需要用canvas. 而我在看文档的时候,发现canvas是一个很独立的API:和DOM BOM基本上没什么关系. 在学习canvas的时候需要了解很多概念,否则看某些文档的讲解可能会看 ...