zoukankan      html  css  js  c++  java
  • 自动生成ToString、equals、hashcode、compareTo方法的commons4e插件和commonclipse插件, 小强斋

    在实际的开发中总是有重写从Object类所继承的equals()、hashCode()和toString()等方法的需求,实现这个需求的代码烦琐且无技术含量,编写不当还容易出现不易发现的错误。为了更加方便地实现这些方法,可以使用Apache Commons Lang组件builder包中的帮助类。

    在org.apache.commons.lang.builder这个包中一共有7个类,其说明如表所示。

    类  名

    说  明

    CompareToBuilder

    用于辅助实现Comparable接口的compareTo()方法

    EqualsBuilder

    用于辅助实现Object类equals()方法

    HashCodeBuilder

    用于辅助实现Object类hashCode()方法

    ToStringBuilder

    用于辅助实现Object类toString()方法

    ReflectionToStringBuilder

    借助反射机制辅助实现Object类toString()方法

    ToStringStyle

    辅助ToStringBuilder控制输出样式

    StandardToStringStyle

    辅助ToStringBuilder控制输出标准样式

     

    这些类的用法均不复杂,创建一个对象后根据实际开发的需要调用若干个append()方法,然后调用toString()、isEquals()、toHashCode()和toComparison()等方法即可。

    同时为了进一步方便使用Apache Commons Lang的builder包中的类,还可以使用Eclipse的插件commons4e或者Commonclipse。他们利用Apache Commons lang builder来自动生成toString()、hashcode()、equals()和compareTo()方法的代码。

    一、commons4e插件 

    commons4e插件可以帮助你自动生成ToString、equals、hashcode等方法,而且可以由你来自定义根据哪些字段生成这些方法,是一个比较不错的插件。该插件生成代码实现是基于apache commons lang项目。你的项目必须包含commons-lang.jar包

    方法一

    请先下载eclipse插件,点击此处下载。下载后将解压后的文件夹中的下面3个文件拷贝到

    C:\Program Files\MyEclipse 6.5\eclipse\plugins下面即可


    方法二:Myeclipse在线安装:

    Help-->Software Updates-->find and install-->select for new features to install-->new remote site

    URL填入下面的地址http://commons4e.berlios.de/updatesite31/

    测试

    安装完成后,在代码中右键菜单,效果如下:



    使用很方便  右键==>commons4e 然后选择你要的功能就OK了

    生成的代码如下:

    package hdty.system.flow.vo;
    
    import org.apache.commons.lang.builder.CompareToBuilder;
    import org.apache.commons.lang.builder.EqualsBuilder;
    import org.apache.commons.lang.builder.HashCodeBuilder;
    import org.apache.commons.lang.builder.ToStringBuilder;
    
    public class Person implements Comparable<Person> {
    	private String name;
    	private String age;
    	
    	@Override
    	public boolean equals(final Object other) {
    		if (!(other instanceof Person))
    			return false;
    		Person castOther = (Person) other;
    		return new EqualsBuilder().append(name, castOther.name).append(age,
    				castOther.age).isEquals();
    	}
    	@Override
    	public int hashCode() {
    		return new HashCodeBuilder().append(name).append(age).toHashCode();
    	}
    	public int compareTo(final Person other) {
    		return new CompareToBuilder().append(name, other.name).append(age,
    				other.age).toComparison();
    	}
    	@Override
    	public String toString() {
    		return new ToStringBuilder(this).append("name", name)
    				.append("age", age).toString();
    	}
    
    }

    参考:
    http://www.blogjava.net/xmatthew/archive/2008/04/03/190508.html

    http://hi.baidu.com/juntao_li/item/addce6cec668b03f45941608

    二、commonclipse插件

    commonclipse是为jakarta commons-lang用户提供的eclipse  插件。它可以使用commons-lang生成器自动生成下列方法:toString(), hashCode(), equals(Object),  compareTo(Object)。

    下载地址  http://sourceforge.net/projects/commonclipse/

    下载后将解压后的features和plugins拷贝到MyEclipse 6.5\eclipse,合并即可。效果如下(右键java文件或者在代码编辑页面右键均可)


     

  • 相关阅读:
    CS224d lecture 6札记
    CS224d 干货(视频,笔记,论文)
    Github
    【转】在Unity中读写文件数据:LitJSON快速教程
    【转】通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider
    【转】通过制作Flappy Bird了解Native 2D中的Sprite,Animation
    【转】Unity3D Transform中有关旋转的属性和方法测试
    unity射线碰撞检测+LayerMask的使用
    【转】Unity3D 关于贝赛尔曲线,平滑曲线,平滑路径,动态曲线
    【转】Itween 贝塞尔曲线(一)
  • 原文地址:https://www.cnblogs.com/xiaoqiangzhaitai/p/5429392.html
Copyright © 2011-2022 走看看