zoukankan      html  css  js  c++  java
  • 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时:

     1 import java.io.Serializable;
     2 
     3 
     4 import org.junit.Test;
     5 import org.slf4j.Logger;
     6 import org.slf4j.LoggerFactory;
     7 
     8 
     9 
    10 import lombok.Data;
    11 
    12 
    13 
    14 public class TestLombok implements Serializable{
    15 
    16     private static final long serialVersionUID = 5071239632319759222L;
    17     private static final Logger logger = LoggerFactory.getLogger(TestLombok.class);
    18 
    19     private String name;
    20     private String  gender;
    21     private int age;
      }

    下面我们来看看其结构图:

      

    从图上可以发现,没有相应的getter,setter等方法。

    2、下面我们再来看看加了@Data 注解之后

     1 import org.junit.Test;
     2 import org.slf4j.Logger;
     3 import org.slf4j.LoggerFactory;
     4 
     5 
     6 
     7 import lombok.Data;
     8 
     9 
    10 @Data
    11 public class TestLombok implements Serializable{
    12 
    13     private static final long serialVersionUID = 5071239632319759222L;
    14     private static final Logger logger = LoggerFactory.getLogger(TestLombok.class);
    15 
    16     private String name;
    17     private String  gender;
    18     private int age;
      }

    看看结构图会是什么样子?

    从上图可以很明显的发现,加了@Data 注解之后,多了对应的getter,setter等方法。(是不是很简单,笑~~)那么我们再来简单的测试下看看能不能用吧?

    1 @Test
    2     public void lombok(){
    3         TestLombok lombok = new TestLombok();
    4         lombok.setName("lombok");
    5         lombok.setGender("noGender");
    6         lombok.setAge(99);
    7         System.out.println(lombok.getName());
    8         
    9     }

    运行结果:

    事实证明,这个是有作用的,那么对lombok,我就介绍到这儿了。下面说说我觉得的优缺点吧。

      优点:

         1、首先,大家都看到了,这是一个很方便的工具,省去了我们不少的操作,特别是在类的属性很多的时候,代码看上去也很简洁。

         2、其次,也避免了我们在修改属性时,忘记修改方法的错误。

      缺点:

        1、虽然代码看上去很简洁,但是降低了源代码文件的可读性和完整性(你没发现看上去怪怪的吗,O(∩_∩)O哈哈哈~)

        2、不支持多种参数构造器的重载。

      其他方面的影响本人暂时还不知道,坐等其他大佬来指教,谢谢!

  • 相关阅读:
    开源的Linux QQ
    如何从VS2003升级到VS2008
    LINQ在开发中的地位?
    SQL Server 2005 Analysis Services
    .NET framework源代码开放了
    WebForms和MVC这2个模型都很棒,由相关讨论想到的
    IIS 7.0相关文章收集
    探究基于声明的身份标识
    微软为“离线”做好准备:推出同步框架
    通用日志
  • 原文地址:https://www.cnblogs.com/dbdd/p/7219554.html
Copyright © 2011-2022 走看看