欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识

然后通过IDE去生成其属性的构造器 次  来源:宝鼎软件 时间:2018-07-28

原文出处: oKong

在去北京培训的时候,讲师说到了lombok这个第三方插件包,利用了之后发明,确实是个神奇,昆山软件开发,制止了编写许多臃肿的且定式的代码,固然现代的IDE都能通过快捷键可能右键的方法,利用Generate Getters and Setters快速生成setters/getters,但当某一个字段修改可能添加字段时,又需要反复的操纵一遍,但利用了lombok之后。一切都是自动的,昆山软件开发,除了最常用的生成setters/getters,尚有诸如:自动生成toString要领、equals、·haashcode·等,还能快速生成Builder模式的javabean类,实在是利便。措施猿是很懒的,一切反复的事情都想通过剧本可能自动化东西来完成,所以,利用lombok吧。

为何要利用Lombok

我们在开拓进程中,凡是城市界说大量的JavaBean,然后通过IDE去生成其属性的结构器、getter、setter、equals、hashcode、toString要领,当要增加属性可能对某个属性举办改变时,好比定名、范例等,都需要从头去生成上面提到的这些要领。这样反复的劳动没有任何意义,Lombok内里的注解可以轻松办理这些问题。

  • 简化冗余的JavaBean代码,使得实体文件很简捷。
  • 大大提高JavaBean中要领的执行效率,省去反复的步调
  • Lombok简介

    Lombok是一个可以通过简朴的注解形式来辅佐我们简化消除一些必需有但显得很臃肿的Java代码的东西,通过利用对应的注解,劳务派遣管理系统,可以在编译源码的时候生成对应的要领。

    官方地点:https://projectlombok.org/ github地点:https://github.com/rzwitserloot/lombok

    官网对其表明为:

    然后通过IDE去生成其属性的结构器  <a href=苏州软件公司 、getter、setter、equals、hashcode、toString要领" class="aligncenter size-full wp-image-29275" title="59644057" src="/uploads/allimg/c180728/1532H1a221310-12R7.png" />

    这里简朴说下lombok实现的道理:主要是通过抽象语法树(AST),在编译处理惩罚后,匹配到有其注解的类,那么注解编译器就会自动去匹配项目中的注解对应到在lombok语法树中的注解文件,并颠末自动编译匹配来生成对应类中的getter可能setter要领,到达简化代码的目标。

    操作此道理,也可自行编写一些事情中一些常常利用到的,好比实体类转Map工具,map工具转实体类,原本利用Beanutils可能cglib的BeanCopier实现转换,前者利用的是反射的机制,所以机能相对较差,后者是利用修改字节码技能,机能在未利用Converter时根基等同于setget要领。但说白了照旧贫苦,究竟还需要缓存工具等做到复用等。而利用lombok的形式的话,一切都是自动的,机能根基是没有损失的,由于对AST不熟悉,之后有时间了可以举办插件编写下(去官网提过这个问题,官方回覆说,不太切合lombok的利用场景,⊙﹏⊙‖∣,照旧本身动手,风衣足食吧~)

    eclipse 安装

    1. 下载 lombok.jar 包
    2. 运行lombok.jar包,会自动扫描系统的ide安装环境(可妙手动指定目次),点击Install/Update,即可。

     然后通过IDE去生成其属性的结构器  <a href=苏州软件公司 、getter、setter、equals、hashcode、toString要领" class="aligncenter size-full wp-image-29276" title="17556273" src="/uploads/allimg/c180728/1532H1a22430-2P53.png" />

    1. 不运行jar包环境下,可直接指定eclipse.ini文件,配置javaagent属性即可(第二种要领最后的结果也是这样的。):

    然后通过IDE去生成其属性的结构器  <a href=苏州软件公司 、getter、setter、equals、hashcode、toString要领" class="aligncenter size-full wp-image-29277" title="10464293" src="/uploads/allimg/c180728/1532H1a22R50-34F5.png" />

    Lombok利用

    添加maven依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
    </dependency>

    常用注解先容

    1. @Getter / @Setter:可以浸染在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter要领,放在属性上,会对该属性生成Getter/Setter要领。并可以指定Getter/Setter要领的会见级别。
    2. @EqualsAndHashCode :默认环境下,会利用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode要领,也可以指定详细利用哪些属性。 @ToString 生成toString要领,默认环境下,会输出类名、所有属性,属性会凭据顺序输出,以逗号支解。
    3. @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:无参结构器、部门参数结构器、全参结构器
    4. ** @Data:包括@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,凡是环境下,根基上利用这个注解就足够了。**
    5. @Budilder:可以举办Builder方法初始化。
    6. @Slf4j:等同于:private final Logger logger = LoggerFactory.getLogger(XXX.class);的确不能更爽了!一般上用在其他java类上

    更多注讲解明,可查察:https://projectlombok.org/features/index.html

    简朴利用示例

    利用lombok

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public class Demo {
    
        String code;
        String name;
    
    }