- 浏览: 1099596 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (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编写基于命令行的程序
这个内容在之前的帖子中已经有人讨论过,今天再做一更进一步的了解.
本篇会涉及如下三个注解:
-
@Getter/@Setter: 帮助我们对应的 getter/setter方法
- (Come on, 这个没什么意思, Hibernate Tools会生成, Eclipse 佷智能的好不拉! 是的, 从这个角度出发的确没太大吸引力, 各位看管姑且看之, @Data会更有用, 总是会有需要手写pojo的情况)
- @NonNull: 在setter方法中做非null判断,遇到null参数,会抛出NullPointerException
如果你还不知道Lombok是什么, 先看看这篇:
Lombok简化Java代码 - code less do more
关于这部分主题,官方文档在这里(E文强力的朋友也看这里)
http://projectlombok.org/features/GetterSetter.html
代码演示:
package lv.sample.lombok; import lombok.AccessLevel; import lombok.Getter; import lombok.NonNull; import lombok.Setter; import lombok.ToString; @ToString public class GetterSetterUser { @Getter @Setter private int age = 25; @Setter(AccessLevel.PROTECTED) private String address = "shanghai"; /* * add a notnull constraint. */ @Getter @Setter @NonNull private String email = null; /** * if the setName method has been declared, * the Lombok does not generate it. */ @Setter @Getter private Object name = null; /** * code by myself * @param name */ public void setName(String name) { this.name = name + " from my code"; } public static void main(String[] args) { // we test the getter/setter annotation GetterSetterUser bean = new GetterSetterUser(); bean.setAge(20); bean.setAddress("xi'an"); bean.setName("wity_lv,"); /* * the toString() method has been instead of the Lombok @ToString * annotation */ System.out.println(bean.toString()); /* * set a null value to email */ try { bean.setEmail(null); } catch(NullPointerException e) { System.out.println("phone could not be null value"); } } }
console out 写道
GetterSetterUser(age=20, address=xi'an, email=null, name=wity_lv, from my code)
email could not be null value
email could not be null value
使用 delombok工具反向生成代码, 看看使用注解能省多少代码:
注意: lombok的注解是可以直接用的, delombok工具只是用来查看生成的代码, 不需要将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 10:57:14 CST 2011 package lv.sample.lombok; import lombok.NonNull; public class GetterSetterUser { private int age = 25; private String address = "shanghai"; /* * add a notnull constraint. */ @NonNull private String email = null; /** * if the setName method has been declared, * the Lombok does not generate it. */ private Object name = null; /** * code by myself * @param name */ public void setName(String name) { this.name = name + " from my code"; } public static void main(String[] args) { // we test the getter/setter annotation GetterSetterUser bean = new GetterSetterUser(); bean.setAge(20); bean.setAddress("xi\'an"); bean.setName("wity_lv,"); /* * the toString() method has been instead of the Lombok @ToString * annotation */ System.out.println(bean.toString()); /* * set a null value to email */ try { bean.setEmail(null); } catch (NullPointerException e) { System.out.println("phone could not be null value"); } } @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "GetterSetterUser(age=" + this.getAge() + ", address=" + this.address + ", email=" + this.getEmail() + ", name=" + this.getName() + ")"; } @java.lang.SuppressWarnings("all") public int getAge() { return this.age; } @java.lang.SuppressWarnings("all") public void setAge(final int age) { this.age = age; } @java.lang.SuppressWarnings("all") protected void setAddress(final String address) { this.address = address; } @NonNull @java.lang.SuppressWarnings("all") public String getEmail() { return this.email; } @java.lang.SuppressWarnings("all") public void setEmail(@NonNull final String email) { if (email == null) throw new java.lang.NullPointerException("email"); this.email = email; } @java.lang.SuppressWarnings("all") public Object getName() { return this.name; } }
话说,为每个字段写@Getter @Setter有些麻烦, 这里有个@Data会省不少事:
@Data @NoArgsConstructor @AllArgsConstructor @Log4j public class LombokUser { private String id = null; private String name = null; @NonNull 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)); try { u.setEmail(null); } catch(NullPointerException ex) { log.info("email could not be null: " + ex.getMessage()); } } }
console out 写道
2011-08-26 11:10:40 test the lombok bean
2011-08-26 11:10:40 LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
2011-08-26 11:10:40 true
2011-08-26 11:10:40 email could not be null: email
2011-08-26 11:10:40 LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
2011-08-26 11:10:40 true
2011-08-26 11:10:40 email could not be null: email
发表评论
文章已被作者锁定,不允许评论。
-
Log4j分包输出日志
2013-08-06 11:21 10116前言 Log4j是我从接 ... -
使用Java编写基于命令行的程序
2013-04-14 17:32 8391平时工作中,会用Java编写基于命令行的小工具。本片将介绍 ... -
WTF, MS JDBC Driver for SQL Server 2008
2012-11-29 10:59 2742WTF = What Fuck ... 今天被S ... -
Ubuntu&Mac下使用alias简化日常操作
2012-09-22 14:33 12263alias 在Linux系统中用来给指令起别名,用来简化 ... -
用ruby+java, 同步C++和数据库中的注释.
2012-09-13 15:27 1748说明 SqlCommetTools是前一段时间为公司C ... -
分享自己写的文档工具(Ruby - Sinatra)
2012-04-12 16:48 2754在线地址 http://dayang.cloudfou ... -
图解在JavaEye博客中插入SlideShare
2011-09-16 10:02 2437前两天分享了一个SlideShare, 内容是我在公司做的一 ... -
分享一个SlideShare:《做卓有成效的程序员》
2011-09-14 10:14 2653几个月前在公司内部做的演讲,分享了一些工作方面技巧。今天拿出 ... -
Lombok简化Java代码 - Code less do More
2011-08-24 12:05 4590关于Lombok这个东西,论坛里已经有人介绍过,我也是通过别人 ... -
Linux/Mac OS 个人常用Terminal技巧整理
2011-08-13 22:32 49177刚开始接触linux有些不适应,走了不少弯路,一直没有系统的 ... -
打造顺手的Notepad++
2011-08-09 14:01 24270Notepad++(下面简称np++)一 ... -
使用HttpClient发送Post Http请求
2011-07-29 15:49 214833最近需要使用java对Rest接口进行调用,也就是直接使用ja ... -
使用ruby清理.svn目录
2011-06-27 17:17 1564平时在copy文件的时候经常需要手动清理.svn文件,一两层文 ... -
Web开发中个人String工具类: 提供 toUTF8, toGBK, toHtml, formatDate
2011-04-19 10:56 2339没事翻了翻以前写的代码,感觉这个比较常用,贴出来一遍 ... -
写一个bat来快速打开并编辑tomcat配置文件
2011-01-24 14:50 2382修改tomcat下的server.xml文件又 ... -
写一个bat切换properties配置文件
2011-01-21 11:14 2820最近工作中经常碰到需要切换propert ... -
写一个bat清理tomcat缓存
2011-01-14 10:29 3559平时做开发的时候经常会碰到需要清理tomcat ... -
java.sql.Clob 对象转 String
2011-01-12 15:59 8373转换类的源码: package com.lingran.d ... -
合理布置桌面,提高自己的工作效率
2010-11-16 11:15 2767废话不多说直接步入正题: 1. 桌面布局: 以前在用电 ... -
java中ThreadLocal的设计与使用
2009-01-03 16:53 2186今天在看《Hibernate ...
相关推荐
java 的eclipse或idea等 定义变量时 直接引入lombok.jar包 在类外部 引入@AllArgsConstructor @NoArgsConstructor @Data 简便方法引入getter/setter/tostring等方法
例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦...
例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦...
例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦...
Lombok是一款非常受欢迎的Java库,它通过注解的方式简化了Java代码的编写,特别是对于getter、setter、构造函数、equals、hashCode以及toString等方法的生成。Lombok Plugin是针对集成开发环境(IDE)的扩展插件,它...
Lombok 是一个 Java 开发工具,它通过注解的方式简化了 Java 类的编写,免去了开发者手动编写 getter、setter、构造器、equals、hashCode 和 toString 方法等繁琐的代码。Lombok 插件则是用于集成 Lombok 功能到开发...
例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法。 Lombok能通过注解的方式,在编译时自动为...
Lombok 是一个 Java 开发工具,它通过注解处理器自动为类添加getter、setter、构造器等常用方法,极大地减少了代码冗余,提高了开发效率。Lombok 的插件则是为了在 IDE 中支持 Lombok 功能,使开发者在编写代码时...
Lombok是一款非常流行的Java开发工具,它通过注解的方式简化了JavaBean的代码编写,极大地提高了开发效率。在本文中,我们将深入探讨Lombok插件及其在IntelliJ IDEA 2019.1版本中的应用。 首先,Lombok插件是针对...
Lombok 提供的注解如 `@Data`, `@Setter`, `@Getter`, `@NoArgsConstructor`, `@AllArgsConstructor` 等,能够自动生成构造函数、getter 和 setter 方法、equals(), hashCode() 以及 toString() 等常用方法,极大地...
Lombok是一个能帮助开发者消除Java类中大量重复的getter和setter方法的库,通过注解的方式简化代码。当IDEA无法识别这些注解时,会导致代码辅助功能失效,比如无法跳转到相关方法或者生成的代码中缺失这些方法。 这...
Lombok是一款非常受欢迎的Java库,它通过注解的方式简化了Java对象的创建,使得代码更加简洁、易读。Lombok 2020最新版0.29-2020.1-EAP是其在2020年发布的一个EAP(Early Access Program,早期访问版本),用于测试...
Lombok 是一个 Java 开发工具,它通过注解的方式简化了 Java 类的编写,使得代码更加简洁、易读。Lombok 提供了一系列的注解,如 `@Data`、`@AllArgsConstructor`、`@NoArgsConstructor`、`@Setter`、`@Getter` 等,...
总结一下,Lombok是一个强大的Java开发工具,通过注解简化了JavaBean的编写,提高了开发效率。这个压缩包提供了2018.1到2019.3版本的Lombok插件,方便开发者在IDE中集成使用,享受更高效的编码体验。
Lombok 是一个 Java 开发工具,它通过注解处理器自动为类添加getter、setter、构造器等常用方法,极大地减少了代码量,提升了开发效率。Lombok 的插件 "lombok-plugin-0.34-2020.2.zip" 是针对特定版本的 IntelliJ ...
在软件开发过程中,Java开发者经常面临一个问题,那就是为类的属性编写getter和setter方法,这既耗时又增加了代码冗余。为了解决这一问题,Lombok项目应运而生。Lombok是一款强大的代码生成库,它允许我们在编译时...
Lombok 是一个 Java 开发工具库,它通过提供一系列注解来简化代码,尤其是在创建简单数据类时,能够极大地减少样板代码。Lombok 插件是针对集成开发环境(IDE)如 IntelliJ IDEA 的扩展,目的是在编写和编辑 Java ...
Lombok是一个强大的Java库,它通过注解的方式,自动处理Java对象的构造器、getter/setter、equals()、hashCode()以及toString()等常用方法,从而减少了大量冗余的样板代码。例如,使用`@Data`注解就能自动生成所有...
可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。 @EqualsAndHashCode ...
Lombok,这是一个在Java开发中广泛使用的开源库,它通过提供注解的方式,帮助开发者简化代码,尤其是那些常规的getter、setter、构造函数以及equals、hashCode和toString方法。Lombok插件则是将这一功能集成到...