问题描述
如何创建不可变的 Planet 以便名称不会改变?我很挣扎,因为我认为它是具有可变对象的不可变项目。如果我错了,请纠正我。
每次我在输出中更改名称时也会更改。我错过了什么吗?
我尝试将所有字段设为私有和最终字段(不在此示例中),但我想我缺少一些代码来工作。
我知道 java.util.Date 已被弃用,但这只是举例。
import java.util.Date;
public final class Planet {
String name;
private final Date discoveryDate;
public Planet (String name,Date discoveryDate) {
this.name = name;
this.discoveryDate = new Date(discoveryDate.getTime());
}
public String getName()
return name;
}
public Date getDiscoveryDate() {
return new Date(discoveryDate.getTime());
}
public static void main(String [] args) {
Planet Earth = new Planet("Earth Planet",new Date(2020,01,16,17,28));
System.out.println("Earth");
System.out.println("------------------------------------");
System.out.println("Earth.getName: " + Earth.getName());
System.out.println("Earth.getDiscoveryDate: " + Earth.getDiscoveryDate());
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)