我的Book计划有一系列的Rentals。退货日期不能为空。必须显示LocalDate.parse中的日期。
public class Rent implements {
private LocalDate dateOfRent;
public Rent(LocalDate dateOfRent) {
dateOfRent = LocalDate.now();
}
public LocalDate getdateOfRent(){
return dateOfRent;
}
public void setLocalDate(LocalDate dateOfRent){
this.dateOfRent = dateOfRent;
}
public String toString() {
return "Date of Rent:" + dateOfRent;
}
}
我的租借数组
Rent rentals = {
LocalDate.parse("2008-05-16")
};
答案 0 :(得分:1)
public Rent(LocalDate dateOfRent) {
dateOfRent = LocalDate.now();
}
您正在“重置”本地参数dateOfRent
,而不是设置成员。试试:
this.dateOfRent = LocalDate.now();
这被称为parameter shadowing。
(btw:为什么还要有该参数?)
答案 1 :(得分:1)
由于构造函数参数的名称与字段dateOfRent
的名称相同,因此必须使用this.dateOfRent
来引用该字段,否则将为该值分配参数变量。所以改变这个:
public RentApp(LocalDate dateOfRent) {
dateOfRent = LocalDate.now();
}
与此:
public RentApp(LocalDate dateOfRent) {
// this.dateOfRent = LocalDate.now(); // DON'T YOU WANT TO USE THE ARGUMENT?
this.dateOfRent = dateOfRent;
}
希望这会有所帮助。