快速业务通道

以简单的方式消除 Java 的冗长 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
、一个 toString() 方法和一个 hashCode() 方法 。

有了 Lombok,您无需自己完成上述操作。相反,您只需添加一个注释:@Data。

没错,就这么简单。清单 2 中包括了 @Data。

清单 2. Java bean 的一个更好的开端

import lombok.Data public @Data class Lure {   private String name;   private int size;   private String color;   private String style; }

不过请记住,只有当 lombok.jar 位于您的构建路径且 lombok.Data 被导入到这个 Java 类时,上述代码才会奏效。

如果在 Eclipse 或 WebSphere Studio Application Developer 内查看这个类的概要( 通常位于屏幕上这个类的右侧),就能看到这些方法会被自动添加到这个 Lure 类。

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

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

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

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

现在,假设有一个 Java bean 对您的一个 getter 具有特殊要求。在清单 2 的例子中, getStyle() 可能返回颜色和大小的组合。在这种情况下,可以按自己的意愿编写 getStyle () 方法的代码。Lombok 检查您的代码并且不会基于这个属性创建其自己的 getStyle 版本 。

以简单的方式消除 Java 的冗长(3)

时间:2011-04-30 IBM Brian M. Carey

又假设,您有一个 getter 方法不想公开。为此,Lombok 让您可以输入一个附加参数。 清单 3 给出了一个定制的修饰符(modifier)。

清单 3. 一个定制的修饰符

private String name;   @Getter(AccessLevel.PROTECTED) private int size;   private String color;   private String style; 

在本例中,getSize() 方法将不会被公开。它具有一个受保护的修饰符,所以它只对派生 子类可用并且在 Lure 类本身的内部。

您可能并不总是想接受 Lombok 为您提供的其他默认值。比如,toString() 方法会列出 类名以及所有的属性名和值,中间以逗号分割。这个列表出现在类名的旁边。

比如,假设在记录这个 Lure 类时,您并不关心颜色。为了更改 toString() 的默认设置 ,需要使用 ToString 注释。

清单 4. 修改 toString()

@ToString(exclude="color") public @Data class Lure {   private String name;   private int size;   private String color;   private String style; }

若输出一个实例化了的 Lure 类,它应该看上去类似于:

Lure(name=Wishy-Washy, size=1, style=trolling)

注意到颜色没有被包括?这是因为您之前用注释告诉过 Lombok 不包括颜色。

您还可以修改 equals() 和 hashCode() 方法该如何被处理。清单 5 很直白,不需要过 多解释。

清单 5. 修改 hashCode()

@EqualsAndHashCode(exclude="style&quo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号