`

开发环境中实现Lombok消除Java冗余(转)

阅读更多

Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长。通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种accessor和mutator的大量时间。

我们看这样一个例子,一个标准的Javabean。一个典型的Javabean一般具有几个属性。每个属性具有一个accessor和mutator(getter和setter)。通常还会有一个toString()方法、一个equals()方法和一个hashCode()方法。初看上去,其中可预见的冗余就已经非常多了。如果每个属性都具有一个getter和setter,并且通常如此,那么又何必详细说明呢?

让我们来看看Lombok。为了消除代码行,Lombok使用注释来标识类和Java代码块。在前述的那个Javabean示例中,所有的getter、setter以及其他三个方法都是在编译时被暗示并包括进来的。

而且更好的是如果您使用的是Eclipse或IBM®WebSphere®StudioApplicationDeveloper(如果还没用的话,建议最好使用),您就可以将Lombok集成到Java项目并即刻获得开发时结果。换言之,Eclipse编译器可以立即识别所暗指的getters/setters,而其他Java代码则可引用这些方法。

最直接的好处当然是代码行的减少,这真的很棒。并且,如果有一个特定的getter或setter需要特别的注意,那么您就不必为了找到这个特定的getter或setter而遍历数十行代码。代码也会更为简洁并且冗余也少了。

Lombok还让您得以简化代码的其他部分—不仅仅是Javabean。比如,还可以减少try/catch/finally块内以及同步方法内的冗余代码。现在,我们来看看在您自己的开发环境中如何能实现上述目的。

安装Lombok

要进行安装,本文假设您使用的是Eclipse或WebSphereStudioApplicationDeveloper。如果不是,您仍可使用Lombok;但是不能享用开发时的种种益处。不过,您仍然可以享用编译时的益处。首先,打开您的浏览器并将URL指向http://projectlombok.org/

在撰写本文之时,用这个URL打开的页面的右上角会出现一个很大的单词。这个单词是“Download”。单击该单词并开始下载lombok.jar。此文件无需解压缩,而从其他站点下载的文件中,99%都需要解压缩。

下载此文件后,需要执行这个JAR文件。在您的操作系统中打开一个提示符,进入到安装了lombok.jar的那个目录,并键入java-jarlombok.jar。以上假设在您的路径内已经有JavaRuntimeEnvironment(JRE)。如果没有,需要添加它。如果要了解如何添加,可以参考针对您的具体操作系统的相关文档。如果您使用的是Microsoft®Windows®,那么还可以双击这个lombok.jar图标。同样地,您必须能够从您的图形用户界面(GUI)执行JAR。

不管采取何种方式,应该最终都能看到一个Lombok安装屏幕。该屏幕会提问Eclipse或WebSphereStudioApplicationDeveloper可执行文件位于何处。它的默认位置有可能是正确的。但有时可能需要更改这个默认位置。单击Install/Update,Lombok会被迅速并入Eclipse开发环境。如果已经运行了Eclipse,那么就需要关闭它并重启。

使用Lombok

现在,就可以在Eclipse或WebSphereStudioApplicationDeveloper内开始使用Lombok了。请参考清单1内的代码。
清单1.Javabean的一个良好开端 
publicclassLure{ 
 privateStringname; 
 privateintsize; 
 privateStringcolor; 
 privateStringstyle; 
}

以上是一个简单的Javabean的典型开始。从这里,可以为每个属性添加getters和setters。然后再添加一个equals()方法、一个toString()方法和一个hashCode()方法。有了Lombok,您无需自己完成上述操作。相反,您只需添加一个注释:@Data。没错,就这么简单。清单2中包括了@Data。
清单2.Javabean的一个更好的开端 
importlombok.Data 
public@DataclassLure
 privateStringname; 
 privateintsize; 
 privateStringcolor; 
 privateStringstyle; 
}

不过请记住,只有当lombok.jar位于您的构建路径且lombok.Data被导入到这个Java类时,上述代码才会奏效。如果在Eclipse或WebSphereStudioApplicationDeveloper内查看这个类的概要(通常位于屏幕上这个类的右侧),就能看到这些方法会被自动添加到这个Lure类。

若不能立即看到这个概要,可以单击Eclipse内的Window菜单,然后选择ShowView。从所出现的弹出菜单中,选择Outline,它应该出现在屏幕的右侧。强制显示类的概要的热键组合是Alt+Shift+Q,然后是O。

如果您编写了另一个类来实例化Lure,您将能立刻拥有对Lure所暗指的方法(比如getName()或setSize())的访问。您还能拥有对equals()、hashCode()和toString()的访问。很棒,对吧?

如果您使用的不是Eclipse或WebSphereStudioApplicationDeveloper,那么所暗指的这些方法添加只有在实际编译这些代码时才能被认可。所以虽然在没有Eclipse或WebSphereStudioApplicationDeveloper时仍可以使用Lombok,但Lombok最初的设计目的就是与Eclipse或WebSphereStudioApplicationDeveloper相集成。

在生成getter/setter方法时,Lombok遵从传统的标准。所有这些方法名都以get或set开头并且属性名都是大写的。当然,如果属性是一个Boolean,情况例外。在这种情况下,getter以is开始,而非get。这是Javabean的一种标准实践。

现在,假设有一个Javabean对您的一个getter具有特殊要求。在清单2的例子中,getStyle()可能返回颜色和大小的组合。在这种情况下,可以按自己的意愿编写getStyle()方法的代码。Lombok检查您的代码并且不会基于这个属性创建其自己的getStyle版本。又假设,您有一个getter方法不想公开。为此,Lombok让您可以输入一个附加参数。清单3给出了一个定制的修饰符(modifier)。
清单3.一个定制的修饰符 
privateStringname; 
@Getter(AccessLevel.PROTECTED)privateintsize; 
privateStringcolor; 
privateStringstyle;

在本例中,getSize()方法将不会被公开。它具有一个受保护的修饰符,所以它只对派生子类可用并且在Lure类本身的内部。您可能并不总是想接受Lombok为您提供的其他默认值。比如,toString()方法会列出类名以及所有的属性名和值,中间以逗号分割。这个列表出现在类名的旁边。比如,假设在记录这个Lure类时,您并不关心颜色。为了更改toString()的默认设置,需要使用ToString注释。

分享到:
评论
1 楼 gongmingwind 2010-10-19  
太神奇了,但个人认为会带来代码的阅读困难

相关推荐

    lombok的eclipse安装包

    本安装包是专门为Eclipse集成开发环境提供的Lombok支持,使得开发者可以更加便捷地在Eclipse中使用Lombok的功能。 首先,我们需要了解Lombok的基本概念。Lombok通过在源码级别添加注解(如`@Data`, `@Setter`, `@...

    Lombok 是一种 Java™ 实用工具

    总的来说,Lombok通过注解驱动的代码生成,使得Java开发更加高效,降低了冗余代码的维护成本,提高了代码的可读性和一致性。对于那些注重代码质量和开发效率的团队,Lombok是一个值得尝试的工具。

    lombok.jar下载.rar

    这个压缩包"lombok.jar下载.rar"提供的是Lombok的jar文件,解压缩后可以直接在开发环境中使用。 Lombok的核心功能在于提供了一系列的注解,这些注解可以被Java编译器识别并自动处理,从而在编译期间生成对应的...

    eclipse注解lombok.jar

    Eclipse是一款广泛使用的Java集成开发环境(IDE),它支持各种编程任务,如代码编写、调试和构建等。在Java开发中,Lombok库提供了一种方便的方式来减少样板代码,特别是那些用于getter、setter、equals、hashCode和...

    lombok idea插件最新版本离线安装包

    在开发环境中,尤其是IntelliJ IDEA这样的集成开发环境(IDE)中,使用Lombok插件能够帮助开发者更好地利用Lombok的功能。 首先,Lombok插件对于IDEA用户来说是必不可少的工具。它能够实现在IDE内部对Lombok注解的...

    lombok-plugin-0.25-2018.2.zip

    Lombok是一款非常流行的Java库,它提供了注解处理器来简化Java对象的创建和维护,减少了样板代码,使得代码更加简洁。在使用Lombok时,有时可能会遇到IDE(如...安装和配置这个插件是优化Java开发环境的重要步骤之一。

    IDEA插件-lombok-plugin-0.14.14

    在Java开发领域,IntelliJ IDEA是一款广受欢迎的集成开发环境(IDE),而Lombok则是一个能够简化Java代码的库。本篇文章将详细探讨`IDEA插件-lombok-plugin-0.14.14`的相关知识点,帮助开发者更好地理解和利用这两个...

    lombok 插件idea 下载

    在标题和描述中提到的"Lombok插件 IDEA 下载",主要是指在IntelliJ IDEA这个流行的Java开发环境中安装和使用Lombok插件的过程。 Lombok插件的安装通常有两种方式:在线安装和离线安装。在线安装是通过IDEA的内置...

    lombok-plugin.rar

    在IntelliJ IDEA这个强大的Java集成开发环境中,Lombok插件使得开发过程更为高效。本文将详细介绍如何在IntelliJ IDEA中安装和使用Lombok插件。 1. **Lombok简介** Lombok库提供了诸如`@Data`、`@Setter`、`@...

    lombok-plugin-0.34-2020.1.zip

    Lombok 是一个 Java 开发工具,它通过注解处理器自动为类添加getter、setter、构造器等常用方法,极大地减少了代码冗余,提高了开发效率。Lombok 的插件则是为了在 IDE 中支持 Lombok 功能,使开发者在编写代码时...

    lombok.rar

    Eclipse是Java开发中常用的集成开发环境(IDE),Lombok插件的安装使得开发者在Eclipse中可以直接享受Lombok带来的便利。安装过程相当简单,只需要将压缩包内的文件放置到Eclipse的根目录,然后通过命令行运行`java ...

    eclipse下lombok 插件jar包及安装方法

    在Eclipse这样的集成开发环境中使用Lombok,可以极大地提高开发效率。本篇文章将详细介绍如何在Eclipse中安装和使用Lombok插件。 首先,我们需要下载Lombok的jar包。Lombok官网提供了最新的版本下载,你可以访问...

    lombok-1.18.12or1.18.8.zip

    7. **IDE支持**: 对于IDEA或Eclipse这样的开发环境,需要安装Lombok插件来使IDE能够理解并处理Lombok注解。在IDE设置中启用注解处理器和Lombok插件,才能在编辑器中得到正确的代码提示和自动完成。 总之,Lombok是...

    lombok.jar.rar

    这个"lombok.jar"文件就是Lombok库的jar包,包含了所有必要的类和资源,可以被集成到Java开发环境中,如IDEA或Eclipse,以便在编译时自动处理注解并生成相应的代码。 Lombok的主要注解包括: 1. `@Data`:这是一个...

    新版intellij2018.3无法安装lombok,提供lombok plugin

    在IntelliJ IDEA中安装Lombok插件可以方便地实现这些功能,提高开发效率。 然而,对于特定版本的IntelliJ IDEA,例如2018.3版,可能会遇到无法直接从官方市场下载并安装Lombok插件的问题。这通常是因为插件仓库中的...

    lombok的jar包.rar

    请注意,由于Lombok的处理是在编译时进行的,因此在开发环境中,需要在IDE中安装Lombok插件以支持注解的识别和代码提示。对于IntelliJ IDEA,可以在设置中搜索Lombok插件并安装;对于Eclipse,可以通过Marketplace...

    lombok-plugin-0.16.zip

    在标题提到的"lombok-plugin-0.16.zip"中,包含的是Lombok的IDE插件,用于集成到IntelliJ IDEA或Eclipse开发环境中。 Lombok的核心在于提供了一系列的注解,这些注解可以在编译时自动生成对应的JavaBeans方法。例如...

    idea lombok插件

    而IntelliJ IDEA作为一款强大的Java集成开发环境,配合Lombok插件,能够更好地支持Lombok的使用。 **1. Lombok简介** Lombok是一个开源项目,它提供了一组有用的注解,用于在编译时自动插入源代码,消除Java类中的...

    lombok+open_explore

    标题 "lombok+open_explore" 提到的两个主要概念是 Lombok 和 Open_Explorer,它们都是与 Java 开发相关的工具,特别是在 Eclipse 集成开发环境中。Lombok 是一个库,而 Open_Explorer 是一个插件。接下来,我们将...

Global site tag (gtag.js) - Google Analytics