- 浏览: 1100291 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (87)
- J2SE (10)
- Tomcat/Jetty (2)
- Hibernate/iBatis (3)
- Log Framework (1)
- Eclipse (2)
- Ext JS (4)
- jQuery (2)
- Ext GWT (3)
- Pushlet (3)
- GWT (2)
- 工作技巧 (13)
- JMS & ActiveMQ (4)
- Vim/TextMate (4)
- Ruby & Rails (6)
- Javascript (2)
- MacOS (5)
- Database (0)
- Svn/Git (1)
- android (2)
- Ant/Maven (2)
- Lombok (2)
- node (11)
- slidershare (1)
- ubuntu (4)
- 工作总结 (3)
- iphone & ipad (9)
最新评论
-
rchongg:
大神 想问的是 在一般的 登录 和 数据 加密这么两个方面( ...
iOS中使用RSA对数据进行加密解密 -
witcheryne:
dgwutao 写道我的rsa public_key和priv ...
iOS中使用RSA对数据进行加密解密 -
dgwutao:
我的rsa public_key和priveate_key不是 ...
iOS中使用RSA对数据进行加密解密 -
Vanessa_Rain:
亲,可不可以把你的把你的两个文件借我用一下。我这边不能用呀。可 ...
iOS中使用RSA对数据进行加密解密 -
咕嘟咕嘟_HIT:
请问您这部分代码是只实现了命令解析的功能吗
使用Java编写基于命令行的程序
关于Lombok这个东西,论坛里已经有人介绍过,我也是通过别人帖子了解到这个小工具:
http://www.iteye.com/topic/798305
不过作者以免写Getter/Setter为题来介绍Lombok的优势,看了后面的评论之后,觉得这个工具意义不大.
后来在博客在线看到一篇文章,期中提到了Lombok工具.这个工具已经被国外创业者所使用,随之对其产生了很浓厚的兴趣.
<Java开源建站工具>http://www.jobbole.com/entry.php/1233
关于如何介绍Lombok这个工具,自己想了半天,觉得实在比不过作者在首页提供的视频介绍:
ok~ 写了这么多Lombok到底是什么东西,他具体能带来什么便利呢?
Lombok主要是提供一套注解,根据注解在编译时生成相关代码,目前提供如下注解:
@Getter
/ @Setter
public int getFoo() {return foo;}
.@Getter(lazy=true)
@ToString
Lombok会根据field自动生成
toString
方法,这个对调试来说很方便! 这个注解生成的toString格式:
LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
@EqualsAndHashCode
hashCode
and equals
方法.@NoArgsConstructor
, @RequiredArgsConstructor
and @AllArgsConstructor
@Data
@ToString
, @EqualsAndHashCode
, @Getter
on all fields, and @Setter
on all non-final fields, and @RequiredArgsConstructor
!@Cleanup
close()
methods safely with no hassle.@Synchronized
synchronized
done right: Don't expose your locks.@SneakyThrows
@Log
val
@Delegate
如何使用?
1. 从项目首页下载lombok.jar
2. 双击lombok.jar, 将其安装到eclipse中(该项目需要jdk1.6+的环境)
3. 将Lombok.jar添加到classpath中
4. 编码看看:
项目结构:
package lv.sample.lombok; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.log4j.Log4j; @Data @NoArgsConstructor @AllArgsConstructor @Log4j public class LombokUser { private String id = null; private String name = null; private String email = null; public static void main(String[] args) { log.info("test the lombok bean"); LombokUser u = new LombokUser("001", "wity_lv", "wity_lv@sample.com"); System.out.println(u.toString()); LombokUser u2 = new LombokUser("001", "wity_lv", "wity_lv@sample.com"); System.out.println(u.equals(u2)); } }
console out 写道
2011-08-24 11:57:36 test the lombok bean
2011-08-24 11:57:36 LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
2011-08-24 11:57:36 true
2011-08-24 11:57:36 LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
2011-08-24 11:57:36 true
What is happenning???
使用javap看看编译后的代码:
在eclipse outline中显示的结构
到这里 ~ 这些仅仅只是作者提供一些方便的注释, 当然我们可以fork这个项目的 GitHub, 研究内部原理,构建适合自己团队的Lombok:
https://github.com/rzwitserloot/lombok
2011-08-26 10:00 补充 User中究竟省了多少代码:
关于上面写的User方法,我用作者提供的 delombok 进行了反向生成, 看看这些注释究竟省了多少代码:
delombok 写道
java -jar -cp lib/log4j-1.2.8.jar lib/lombok.jar delombok src -d ./src-delomboked
// Generated by delombok at Fri Aug 26 18:12:13 CST 2011 package lv.sample.lombok; public class LombokUser { private String id = null; private String name = null; private String email = null; public static void main(String[] args) { log.info("test the lombok bean"); LombokUser u = new LombokUser("001", "wity_lv", "wity_lv@sample.com"); log.info(u.toString()); LombokUser u2 = new LombokUser("001", "wity_lv", "wity_lv@sample.com"); log.info(u.equals(u2)); } @java.lang.SuppressWarnings("all") public String getId() { return this.id; } @java.lang.SuppressWarnings("all") public String getName() { return this.name; } @java.lang.SuppressWarnings("all") public String getEmail() { return this.email; } @java.lang.SuppressWarnings("all") public void setId(final String id) { this.id = id; } @java.lang.SuppressWarnings("all") public void setName(final String name) { this.name = name; } @java.lang.SuppressWarnings("all") public void setEmail(final String email) { this.email = email; } @java.lang.Override @java.lang.SuppressWarnings("all") public boolean equals(final java.lang.Object o) { if (o == this) return true; if (!(o instanceof LombokUser)) return false; final LombokUser other = (LombokUser)o; if (!other.canEqual((java.lang.Object)this)) return false; if (this.getId() == null ? other.getId() != null : !this.getId().equals((java.lang.Object)other.getId())) return false; if (this.getName() == null ? other.getName() != null : !this.getName().equals((java.lang.Object)other.getName())) return false; if (this.getEmail() == null ? other.getEmail() != null : !this.getEmail().equals((java.lang.Object)other.getEmail())) return false; return true; } @java.lang.SuppressWarnings("all") public boolean canEqual(final java.lang.Object other) { return other instanceof LombokUser; } @java.lang.Override @java.lang.SuppressWarnings("all") public int hashCode() { final int PRIME = 31; int result = 1; result = result * PRIME + (this.getId() == null ? 0 : this.getId().hashCode()); result = result * PRIME + (this.getName() == null ? 0 : this.getName().hashCode()); result = result * PRIME + (this.getEmail() == null ? 0 : this.getEmail().hashCode()); return result; } @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "LombokUser(id=" + this.getId() + ", name=" + this.getName() + ", email=" + this.getEmail() + ")"; } @java.lang.SuppressWarnings("all") public LombokUser() { } @java.beans.ConstructorProperties({"id", "name", "email"}) @java.lang.SuppressWarnings("all") public LombokUser(final String id, final String name, final String email) { this.id = id; this.name = name; this.email = email; } private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LombokUser.class); }
发表评论
文章已被作者锁定,不允许评论。
-
Log4j分包输出日志
2013-08-06 11:21 10123前言 Log4j是我从接 ... -
使用Java编写基于命令行的程序
2013-04-14 17:32 8399平时工作中,会用Java编写基于命令行的小工具。本片将介绍 ... -
WTF, MS JDBC Driver for SQL Server 2008
2012-11-29 10:59 2749WTF = What Fuck ... 今天被S ... -
Ubuntu&Mac下使用alias简化日常操作
2012-09-22 14:33 12272alias 在Linux系统中用来给指令起别名,用来简化 ... -
用ruby+java, 同步C++和数据库中的注释.
2012-09-13 15:27 1755说明 SqlCommetTools是前一段时间为公司C ... -
分享自己写的文档工具(Ruby - Sinatra)
2012-04-12 16:48 2759在线地址 http://dayang.cloudfou ... -
图解在JavaEye博客中插入SlideShare
2011-09-16 10:02 2444前两天分享了一个SlideShare, 内容是我在公司做的一 ... -
分享一个SlideShare:《做卓有成效的程序员》
2011-09-14 10:14 2658几个月前在公司内部做的演讲,分享了一些工作方面技巧。今天拿出 ... -
Lombok简化java开发 - Getter/Setter注解,让你不用再多getter/setter写方法
2011-08-26 11:05 15001这个内容在之前的帖子中已经有人讨论过,今天再做一更进一步的了解 ... -
Linux/Mac OS 个人常用Terminal技巧整理
2011-08-13 22:32 49186刚开始接触linux有些不适应,走了不少弯路,一直没有系统的 ... -
打造顺手的Notepad++
2011-08-09 14:01 24295Notepad++(下面简称np++)一 ... -
使用HttpClient发送Post Http请求
2011-07-29 15:49 214855最近需要使用java对Rest接口进行调用,也就是直接使用ja ... -
使用ruby清理.svn目录
2011-06-27 17:17 1590平时在copy文件的时候经常需要手动清理.svn文件,一两层文 ... -
Web开发中个人String工具类: 提供 toUTF8, toGBK, toHtml, formatDate
2011-04-19 10:56 2344没事翻了翻以前写的代码,感觉这个比较常用,贴出来一遍 ... -
写一个bat来快速打开并编辑tomcat配置文件
2011-01-24 14:50 2386修改tomcat下的server.xml文件又 ... -
写一个bat切换properties配置文件
2011-01-21 11:14 2824最近工作中经常碰到需要切换propert ... -
写一个bat清理tomcat缓存
2011-01-14 10:29 3570平时做开发的时候经常会碰到需要清理tomcat ... -
java.sql.Clob 对象转 String
2011-01-12 15:59 8380转换类的源码: package com.lingran.d ... -
合理布置桌面,提高自己的工作效率
2010-11-16 11:15 2771废话不多说直接步入正题: 1. 桌面布局: 以前在用电 ... -
java中ThreadLocal的设计与使用
2009-01-03 16:53 2190今天在看《Hibernate ...
相关推荐
lombok简化java代码
Lombok 是一个 Java 开发工具,它通过注解的方式简化了 Java 类的编写工作,减少了样板代码。Lombok 提供的注解如 `@Data`, `@Setter`, `@Getter`, `@NoArgsConstructor`, `@AllArgsConstructor` 等,能够自动生成...
Lombok是一款非常受欢迎的Java库,它通过注解的方式简化了Java代码的编写,特别是对于getter、setter、构造函数、equals、hashCode以及toString等方法的生成。Lombok Plugin是针对集成开发环境(IDE)的扩展插件,它...
Lombok 是一个 Java 开发工具,它通过注解的方式简化了 Java 类的编写,免去了开发者手动编写 getter、setter、构造器、equals、hashCode 和 toString 方法等繁琐的代码。Lombok 插件则是用于集成 Lombok 功能到开发...
该压缩包文件"lombok-plugin-0.29-EAP.zip"中包含的是Lombok插件,这个插件通常用于集成开发环境(IDE),如IntelliJ IDEA或Eclipse,以便开发者在编写Java代码时能够直接享受到Lombok带来的便利。安装此插件后,IDE...
Lombok 是一个 Java 开发工具,它通过注解处理器自动为类添加getter、setter、构造器等常用方法,极大地减少了代码冗余,提高了开发效率。Lombok 的插件则是为了在 IDE 中支持 Lombok 功能,使开发者在编写代码时...
Lombok是一款非常流行的Java开发工具,它通过注解的方式简化了JavaBean的代码编写,极大地提高了开发效率。在本文中,我们将深入探讨Lombok插件及其在IntelliJ IDEA 2019.1版本中的应用。 首先,Lombok插件是针对...
Lombok 是一个 Java 开发工具,它通过注解的方式简化了 Java 类的编写,极大地减少了样板代码。在 Spring Boot 项目中,Lombok 的使用能够提高开发效率,使得代码更加简洁、易读。`lombok-plugin-0.34.1-2018.3.zip`...
Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。
Lombok 是一个 Java 开发工具,它通过注解的方式简化了 Java 类的编写,使得代码更加简洁、易读。Lombok 提供了一系列的注解,如 `@Data`、`@AllArgsConstructor`、`@NoArgsConstructor`、`@Setter`、`@Getter` 等,...
在IDE中安装Lombok插件(如压缩包内的“lombok-plugin-0.29-2018.3.zip”),可以使你在编写代码时实时看到Lombok生成的代码效果,并在编译时自动生成对应的字节码。这对于使用Eclipse或IntelliJ IDEA等主流Java IDE...
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:...
赠送源代码:lombok-1.16.20-sources.jar; 赠送Maven依赖信息文件:lombok-1.16.20.pom; 包含翻译后的API文档:lombok-1.16.20-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.projectlombok:lombok:1.16.20...
Lombok 是一个 Java 开发工具库,它通过提供一系列注解来简化代码,尤其是在创建简单数据类时,能够极大地减少样板代码。Lombok 插件是针对集成开发环境(IDE)如 IntelliJ IDEA 的扩展,目的是在编写和编辑 Java ...
总之,`lombok-plugin-0.15.17-IntelliJ IDEA 2017.2.6 x64` 是一个增强 IntelliJ IDEA 对 Lombok 支持的插件,它使得开发人员能够利用 Lombok 提供的注解来简化 Java 代码,提高开发效率。在 2017 年 11 月 20 日时...
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现...
intellij 的lombok 插件离线安装包,Lombok是Java语言的实用工具,确切的说,应该说是一个很好用的插件,对,插件!可以用来帮助开发人员消除Java代码的冗长,尤其是对于简单的Java对象(POJO),它通过注解实现这一...
总的来说,"lombok-plugin-0.34-2020.2.zip" 提供了一个集成 Lombok 功能的 IDE 插件,使得开发者在使用 Lombok 进行 Java 开发时,能获得更好的编码体验。合理利用 Lombok,不仅能够提升开发效率,还能降低因手动...
该工具类可简化 java类的代码 比如 构造函数 set get方法等等
lombok插件,inteliji插件,Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且...