业务DTO定义实践

一.定义抽象类,重写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方法输出的格式样子,比较清蜥。
### 回答1: Java有八种基本数据类型,分别是byte、short、int、long、float、double、char、boolean。String不是基本类型数据,它是一个类。String类不能被继承,因为它被声明为final类。 ### 回答2: Java基本数据类型包括:byte、short、int、long、float、double、boolean和char这八种类型。这些数据类型是用来存储基本数据的,每种类型都有固定的取值范围和默认值。 String不是基本数据类型,它是Java的引用数据类型String表示字符串,用于存储文本类型的数据。在JavaString类提供了许多方法来操作字符串,例如连接、截取、查找等,这些方法使得处理字符串变得更加方便。 String类是Java的最终类,这意味着它不能被其他类继承。最终类是不能被其他类所继承的类,它的设计初衷是为了防止被修改或影响。因此,String类不能被继承,不能有子类。但是,我们可以使用String类创建对象并调用它的方法来进行字符串的操作。 ### 回答3: Java基本数据类型包括:整型(int)、浮点型(float和double)、字符型(char)、布尔型(boolean)。 String不是基本数据类型,它是引用类型。在JavaString是一个类,用于表示字符串类型的数据。它可以用来存储任意长度的字符序列。 在JavaString类是不可继承的,它被设计成了final类,即无法被其他类继承。这是因为String类在Java用途非常广泛,涉及到字符串的不可变性和安全性等方面考虑。通过将String类设置为final类,可以避免由于继承导致的不可控制的数据访问和修改,确保字符串对象的一致性和稳定性。即使不能继承String类,我们仍然可以通过创建String类的新实例来使用它的方法和属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值