我有一个问题,即我的Vechicle对象目前没有将其日期设置为今天的任何内容。奇怪的是我的测试信息仍然是这样的。所有其他功能都适用于日历。
Date Sold: Thu Jan 01 00:00:00 GMT 1970
主类
public void buyVechicle(String Vin){
Vechicle V = findVechicle(Vin);
if (V.getHasBeenSold() == true){
System.out.print("This car has already been sold");
}
else{
V.setHasBeenSold();
V.setDateSold();
}
}
Vechicle Class
public Calendar setDateSold(){
Calendar cal = Calendar.getInstance();
return cal;
}
答案 0 :(得分:0)
public void setDateSold(){
Calendar cal = Calendar.getInstance();
this.dateSold = cal;
}
您必须在班级中设置/分配值。
答案 1 :(得分:0)
尝试
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
this.soldDate= dateFormat.format(cal.getTime());
return cal;
这使您可以管理输出dateformat aswel
更新
另外,您没有设置调用对象的状态。在你的setter方法中 设置
this.soldDate= dateFormat.format(cal.getTime());
这将使用对象保存销售日期,您可以在需要时使用它。
答案 2 :(得分:0)
您的set方法不会在Vehicle类中设置任何字段,因此其他方法将找不到您刚设置的日期。将其更改为:
public Calendar setDateSold(){
Calendar cal = Calendar.getInstance();
this.dateSold = cal;
return cal;
}
Java-bean setter通常有一个value参数,通常不会返回值,所以这更加惯用:
public void setDateSold(Calendar calendar){
this.dateSold = calendar;
}
为了避免混淆用于Java bean样式setter的其他Java程序员,你可以重命名你的方法:
public Calendar sold(){
this.dateSold = Calendar.getInstance();
return this.dateSold;
}
来电者向车辆发送一条有效说“你已被售出”的信息。
或者,更好的是,有几种方法可以将行为分开:
private Calendar today() {
return Calendar.getInstance();
}
public void sold(){
setDateSold(today());
}
public Calendar getDateSold() {
return this.dateSold;
}
private void setDateSold(Calendar calendar) {
this.dateSold = calendar;
}