- 浏览: 1093981 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (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 10059前言 Log4j是我从接 ... -
使用Java编写基于命令行的程序
2013-04-14 17:32 8336平时工作中,会用Java编写基于命令行的小工具。本片将介绍 ... -
WTF, MS JDBC Driver for SQL Server 2008
2012-11-29 10:59 2685WTF = What Fuck ... 今天被S ... -
Ubuntu&Mac下使用alias简化日常操作
2012-09-22 14:33 12181alias 在Linux系统中用来给指令起别名,用来简化 ... -
用ruby+java, 同步C++和数据库中的注释.
2012-09-13 15:27 1688说明 SqlCommetTools是前一段时间为公司C ... -
分享自己写的文档工具(Ruby - Sinatra)
2012-04-12 16:48 2713在线地址 http://dayang.cloudfou ... -
图解在JavaEye博客中插入SlideShare
2011-09-16 10:02 2386前两天分享了一个SlideShare, 内容是我在公司做的一 ... -
分享一个SlideShare:《做卓有成效的程序员》
2011-09-14 10:14 2600几个月前在公司内部做的演讲,分享了一些工作方面技巧。今天拿出 ... -
Lombok简化Java代码 - Code less do More
2011-08-24 12:05 4529关于Lombok这个东西,论坛里已经有人介绍过,我也是通过别人 ... -
Linux/Mac OS 个人常用Terminal技巧整理
2011-08-13 22:32 49106刚开始接触linux有些不适应,走了不少弯路,一直没有系统的 ... -
打造顺手的Notepad++
2011-08-09 14:01 24174Notepad++(下面简称np++)一 ... -
使用HttpClient发送Post Http请求
2011-07-29 15:49 214755最近需要使用java对Rest接口进行调用,也就是直接使用ja ... -
使用ruby清理.svn目录
2011-06-27 17:17 1517平时在copy文件的时候经常需要手动清理.svn文件,一两层文 ... -
Web开发中个人String工具类: 提供 toUTF8, toGBK, toHtml, formatDate
2011-04-19 10:56 2289没事翻了翻以前写的代码,感觉这个比较常用,贴出来一遍 ... -
写一个bat来快速打开并编辑tomcat配置文件
2011-01-24 14:50 2308修改tomcat下的server.xml文件又 ... -
写一个bat切换properties配置文件
2011-01-21 11:14 2770最近工作中经常碰到需要切换propert ... -
写一个bat清理tomcat缓存
2011-01-14 10:29 3487平时做开发的时候经常会碰到需要清理tomcat ... -
java.sql.Clob 对象转 String
2011-01-12 15:59 8282转换类的源码: package com.lingran.d ... -
合理布置桌面,提高自己的工作效率
2010-11-16 11:15 2698废话不多说直接步入正题: 1. 桌面布局: 以前在用电 ... -
java中ThreadLocal的设计与使用
2009-01-03 16:53 2136今天在看《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方法,这些显得很冗长也没有太多技术含量,一旦...
例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法。 Lombok能通过注解的方式,在编译时自动为...
可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。 @EqualsAndHashCode ...
//使用Lombok帮助我们生成这些内容 getter setter 全参构造无参构造equals hashcode //Lombok 使用步骤 // 1 检查idea是否已经安装 Lombok // 2 检查是否勾选了 enable annotation processer // 3 导入 Lombok依赖 /...
我们在写数据库表的映射类的时候,需要写很多的getter/setter方法,我们可以使用Lombok这个jar包中的注解来简化开发。 @Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法 ...
Lombok 是一个 Java 库,它通过使用注解来消除样板代码(boilerplate code),从而简化 Java 类的开发过程。使用 Lombok 可以让开发者在编写 Java 类时减少冗长的代码,提高代码的可读性和可维护性。 Lombok 提供了...
lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter...
lombok是开源的代码生成库,是一款非常实用的小工具,我们在编辑实体类时可以通过lombok注解减少getter、setter等方法的编写,在更改实体类时只需要修改属性即可,减少了很多重复代码的编写工作。
mac android studio 更新到最新版本引起的... 这个异常信息是由于Lombok 插件版本与Android Studio的版本不匹配引起的, 会导致使用Lombok相关注解中getter/setter 方法报错(IED级别) , 单不会影响实际项目部署运行
intellij-idea 安装lombok插件,lombok-plugin,支持快捷开发实体类,在开发中,使用lombok插件能给程序开发带来极大的便利,省去Getter、Setter等无技术含量的重复代码,让我们更专注于代码的逻辑设计。
lombok.jar是v1.16.20,新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter和setter方法 lombok项目的产生就是为了省去我们手动创建getter和setter方法的麻烦,它能够在我们编译源码...
不需要再写getter、setter或equals方法,只要有一个注解,你的类就有一个功能齐全的构建器、自动记录变量等等。 Lombok常用注解编辑 播报 Data 整合了Getter、Setter、ToString、EqualsAndHashCode、...
lombok 通过注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,比如属性getter,setter,构造函数等。 具体使用方式可以参考官网说明:https://projectlombok.org/features/all
lombok是开源的代码生成库,是一款非常实用的小工具,我们在编辑实体类时可以通过lombok注解减少getter、setter等方法的编写,在更改实体类时只需要修改属性即可,减少了很多重复代码的编写工作。
LomBok主要特性有:自动生成默认的getter/setter方法、自动化的资源管理(通过@Cleanup注解)及注解驱动的异常处理等。目前在国外广泛应用。 LomBok它和jquery一样,目标是让程序员写更少的代码,以及改进一些原始语法...
lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter...
idea)中安装lombok plugin,可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立...