数组中的LocalDate给我空结果

时间:2019-05-19 23:06:02

标签: java

我的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")
};

2 个答案:

答案 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;
    }

希望这会有所帮助。