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文件或者在代码编辑页面右键均可)


     

  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/xqzt/p/5637116.html
Copyright © 2011-2022 走看看