java - 返回可变对象的好方法

标签 java

假设我有一个 Comment 类,我有一个名为 commentDate 的私有(private)字段,它是一个 java.util.Date 和一个名为 getCommentDate 的 getter。

为什么返回那个日期的副本(return new Date(commentDate.getTime()))比简单地返回那个日期更好...

用户如何更改该 Date 的对象状态,因为它是 getter 而不是 setter?

最佳答案

由于 java.util.Date 实现了 Cloneable,您可以轻松克隆日期,如:

public class DateTest {
    private Date date;

    public DateTest() {

    }

    public Date getDate() {
        return (Date) date.clone();
    }

    public void setDate(Date date) {
        this.date = (Date) date.clone();
    }       
}

关于java - 返回可变对象的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6503157/

相关文章:

java - 如何从字符串中找到匹配的单词以及百分比值?

java - 访问 Lucene 4 中的术语统计信息

java - IZpack java条件调试(IZpack 4)

java - 运行程序并输入正确的输入后,程序不会显示程序的答案

java - 如何配置 Jackson 以使用默认类型反序列化命名类型?

Java ATM 程序只是在 ATM 处打印。(init)(ATM.java :6) but compiles with no errors (not using any arrays in program)

java - 四舍五入的双重陌生感

java - 有没有办法知道调用者类名?

java - 在另一个字符串中的某些字符之间插入一个字符串

java - javafx可以打印到点阵打印机吗?