gpt4 book ai didi

java - 关于不可变类

转载 作者:行者123 更新时间:2023-12-01 19:05:00 26 4
gpt4 key购买 nike

我基于不可变性的概念开发了下面的代码,因为我们知道在java中字符串类是不可变的,所以我也开发了下面的类作为不可变的,请告诉我它是否正确。

   public final class BrokenPerson
{
private String firstName;
private String lastName;
private Date dob;

public BrokenPerson( String firstName, String lastName, Date adob)
{
this.firstName = firstName;
this.lastName = lastName;
this.dob = new Date(adob.getTime());
}

public String getFirstName()
{
return this.firstName;
}
public String getLastName()
{
return this.lastName;
}
public Date getDOB()
{
return new Date(dob.getTime());


}
}

最佳答案

final 应用于类使其不可扩展,而不是不可变。

您希望您的成员成为最终

public final class BrokenPerson
{
private final String firstName;
private final String lastName;
private final Date dob;
//...
}

当然,就像现在一样,类不能被修改,因为私有(private)字段不会被任何成员方法修改,但是,为了严格起见,您应该将它们标记为final

关于java - 关于不可变类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com