当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

业务DTO定义实践

发表于: 2013-11-07   作者:bijian1013   来源:转载   浏览次数:
摘要: 一.定义抽象类,重写toString()方法      在toString()方法中调commons-lang.jar的ToStringBuilder类的reflectionToString方法。这样,在日志输出时直接输出业务DTO对象,就能输出对象的属性及属性值。 package com.bijian.study; import org.apac

一.定义抽象类,重写toString()方法

     在toString()方法中调commons-lang.jar的ToStringBuilder类的reflectionToString方法。这样,在日志输出时直接输出业务DTO对象,就能输出对象的属性及属性值。

package com.bijian.study;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

public abstract class AbstractDTO implements java.io.Serializable {

    private static final long serialVersionUID = 639200629041717L;

    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
    }
}

 

二.定义业务DTO对象,重写hashCode()、equals()方法,并实现Comparable接口

package com.bijian.study;

public class PersonDTO extends AbstractDTO implements Comparable {

    //编码
    private String code;
    
    //姓名
    private String name;
    

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((code == null) ? 0 : code.hashCode());
        return result;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (!(obj instanceof PersonDTO)) {
            return false;
        }
        PersonDTO other = (PersonDTO) obj;
        if (code == null) {
            if (other.code != null) {
                return false;
            }
        } else if (!code.equals(other.code)) {
            return false;
        }
        return true;
    }

    public int compareTo(Object object) {
        String thisCode = this.getCode();
        String anotherCode = ((PersonDTO) object).getCode();
        return thisCode.compareTo(anotherCode);
    }
    
    public static void main(String[] args) {
        PersonDTO personDTO = new PersonDTO();
        personDTO.setCode("123");
        personDTO.setName("Test");
        System.out.println(personDTO);
    }
}

 运行PersonDTO类的main方法,打印结果如下所示:

com.bijian.study.PersonDTO@173a10f[
  code=123
  name=Test
]
  这里其实就是调用commons-lang.jar的ToStringBuilder类的reflectionToString方法输出的格式样子,比较清蜥。

业务DTO定义实践

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
(原创文章) 1. Spring业务bean配置的困扰 利用Spring IoC 容器进行项目开发的一个重要工作就是在
(原创文章) 1. Spring业务bean配置的困扰 利用Spring IoC 容器进行项目开发的一个重要工作就是在
(原创文章) 1. Spring业务bean配置的困扰 利用Spring IoC 容器进行项目开发的一个重要工作就是在
(原创文章) 1. Spring业务bean配置的困扰 利用Spring IoC 容器进行项目开发的一个重要工作就是在
(原创文章) 1. Spring业务bean配置的困扰 利用Spring IoC 容器进行项目开发的一个重要工作就是在
【实践系列介绍】: 各位看官,本ID描述的【大数据数据实践】系列,目前暂定为三期工程: 1 期 : S
摘要 在计算机应用系统建设过程中,有效需求分析是最关键的一步,本文深入分析了有效需求分析的概念
需求定义最佳实践 要点: u 需求定义工作重点在于明确项目的目标和范围,是后续需求工作的基础。 u
下面将 用户界面称为UI 业务逻辑称为BL 几个重点 1. Ext.extend() 2. UI与BL解耦 每个模块分为3个文
这一次的Flex 实践将要实现以下功能: 1、自定义一个简单的 Flex 组件 2、创建一个Index. mxml 来调
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号