java 数组中的LocalDate返回空结果[重复]

p8h8hvxi  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(115)
    • 此问题在此处已有答案**:

Why are my fields initialized to null or to the default value of zero when I've declared and initialized them in my class' constructor?(4个答案)
三年前关闭了。
我有一个出租我的书程序数组。返回日期不能为空。在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")
};
66bbxpm5

66bbxpm51#

由于构造函数的参数与字段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;
    }
mfuanj7w

mfuanj7w2#

public Rent(LocalDate dateOfRent) {
       dateOfRent = LocalDate.now();
 }

您正在“重置”本地参数dateOfRent,而不是设置成员。请尝试:

this.dateOfRent = LocalDate.now();

这被称为parameter shadowing
(btw:为什么还要有参数呢?)

相关问题