以简单的方式消除 Java 的冗长

何为 Lombok?

Lombok 是一种 Java Archive (JAR) 文件,可用来消除 Java 代 码的冗长。

我们看这样一个例子,一个标准的 Java bean。一个典型的 Java bean 一般具有几个属 性。每个属性具有一个 accessor 和 mutator(getter 和 setter)。通常还会有一个 toString() 方法、一个 equals() 方法和一个 hashCode() 方法。

初看上去,其中 可预见的冗余就已经非常多了。如果每个属性都具有一个 getter 和 setter,并且通常如此 ,那么又何必详细说明呢?

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

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

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

Lombok 还让您得以简化代 码的其他部分 — 不仅仅是 Java bean。比如,还可以减少 try/catch/finally 块内 以及同步方法内的冗余代码。

现在,我们来看看在您自己的开发环境中如何能实现上 述目的。

安装 Lombok

要进行安装,本文假设您使用的是 Eclipse 或 WebSphere Studio Application Developer。如果不是,您仍可使用 Lombok;但是不能享用开发时的种种益处。不过,您仍 然可以享用编译时的益处。

首先,打开您的浏览器并将 URL 指向 http://projectlombok.org/。

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

下载此文件后,需要执行这个 JAR 文件。在您的操作系统中打开一个提示符,进入 到安装了 lombok.jar 的那个目录,并键入 java -jar lombok.jar。

以上假设在您的路径内已经有 Java Runtime Environment (JRE)。如果没有,需要添加 它。如果要了解如何添加,可以参考针对您的具体操作系统的相关文档。

如果您使 用的是 Microsoft Windows,那么还可以双击这个 lombok.jar 图标。同样地, 您必须能够从您的图形用户界面(GUI)执行 JAR。

不管采取何种方式,应该最终都 能看到一个 Lombok 安装屏幕。该屏幕会提问 Eclipse 或 WebSphere Studio Application Developer 可执行文件位于何处。它的默认位置有可能是正确的。但有时可能需要更改这个 默认位置。

单击 Install/Update,Lombok 会被迅速并入 Eclipse 开发环境。如果 已经运行了 Eclipse,那么就需要关闭它并重启。

时间: 2024-10-27 08:39:38

以简单的方式消除 Java 的冗长的相关文章

一种c#深拷贝方式完胜java深拷贝(实现上的对比分析)_C#教程

楼主是一名asp.net攻城狮,最近经常跑java组客串帮忙开发,所以最近对java的一些基础知识特别上心.却遇到需要将一个对象深拷贝出来做其他事情,而原对象保持原有状态的情况.(实在是不想自己new一个出来,然后对着一堆字段赋值......好吧,再此之前我没有关心是否项目框架有深拷贝的方法),然后就想着用反射实现吧....接下来 是我自己的原因,还是真的不存在这样的纯用反射实现的深拷贝方式....(c#是有纯反射实现的) 但也不能算自己白忙活吧,也找到了其他实现深拷贝的方式(但是每种方式我都觉

提高网页加载速度的初步简单技巧方式

网页的加载速度是评估网站质量一个重要指标.原因在于大多数用户能够容忍的网页加载时间只有几秒,如果超出了访客的忍受范围他们会毫不留情地关掉你的网 页,所以网页载入速度会极大地影响网站的流量和访问.以下总结了几种可以明显提高网站加载速度的初步简单技巧方式,如果你的网站存在载入速度慢的问题不妨 与此为参考对网页做些初步优化. 网页加载提速之 – 优化网页图片文件 你的网页一定有图片,加载一个网页往往图片的总尺寸是最大的,特别是那些颜色丰富的背景图片和大副广告图片.所以一般要在同等图片质量的情况下要尽可

mfc-我已经通过MFC ODBC连上mysql数据库了,怎样以最简单的方式访问到数据?

问题描述 我已经通过MFC ODBC连上mysql数据库了,怎样以最简单的方式访问到数据? 已经连上mysql了,现在只需要读出数据库里的数据就行,希望能读出某一个字段中的所有值,按顺序这样读下来,存到我的程序里,怎么读最简单?本人比较菜,最好有易懂的代码,谢谢了 解决方案 就是select * from table这样的比较的理想 解决方案二: 参考:http://www.cnblogs.com/good90/archive/2012/03/04/2379371.htmlMFC通过ODBC连接

简单的学习了java之后,有些疑惑到底用做些什么最方便

问题描述 简单的学习了java之后,有些疑惑到底用做些什么最方便 我知道java可以跨平台,有时我想写一个windows程序,但是又要打包,所以我感觉这个不是 开发windows的最佳选择,那么,这个语言开发什么是最合适的,我知道安卓使用他开发的 那其他的呢 解决方案 windows桌面程序,当然用微软自己的开发工具,比如VC++和C#最好. android.基于jsp的网站用java 解决方案二: 网站:Taobao.支付宝网站是基于Java的.京东商城也是基于Java的. 系统:各种系统.

hibernate简单小程序中报 java.lang.IllegalAccessError错误

问题描述 hibernate简单小程序中报 java.lang.IllegalAccessError错误 我刚开始自学hibernate,跟着视频敲了个小程序,只是实现向数据库employee表中插入一条数据,可是debug运行到 Configuration configuration = new Configuration().configure(); 时就开始抛出 Exception in thread "main" java.lang.IllegalAccessError: tr

JavaScript——以简单的方式理解闭包

      闭包,在一开始接触JavaScript的时候就听说过.首先明确一点,它理解起来确实不复杂,而且它也非常好用.那我们去理解闭包之前,要有什么基础 呢?我个人认为最重要的便是作用域(lexical scope),如果对作用域和作用域链不理解的同学最好自己先去学一学,再回过头来,理解闭包,就更加轻松. 下面便直接进入主题. 我们知道一个函数是有作用域的,在函数内部定义的局部变量只有在函数内部才可以访问的到.一旦函数访问结束被销毁,局部变量随之也会销毁,无法 通过任何方式再次访问局部变量,除

简单给初学者说说JAVA语言的几个特点

1.简单性 Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的.例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理.Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序.因为Java没有结构,数组和串都是对象,所以不需要指针.Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更

Redis 分布式锁的正确实现方式( Java 版 )

分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁.可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性.在任意时刻,只有一个客户端能持有锁. 不会发生死锁.即使有一个客户端在持有锁的期间

JBuilder6:Borland方式的Java开发环境

Jbuilder软件提供了三种不同的版本,它们是:个人版,专业版和企业版.个人版是可以免费下载的,其中仅仅包含了核心编辑器以及调试器的功能.专业版本的功能比个人版本就要强大很多,其中含有标准版的所有功能,但是,现在还只能通过购买的方式得到这款软件:而且还没有出现针对这个版本的任何评估.作为高端产品的企业版本中包含了一些额外的功能,并且企业版本中的这些额外功能是拥有有效期的免费软件.这款产品也能够和Borland企业服务器,Rational Rose以及Rational Unified Proce