从扩展父类中访问值时出现Java NullPointerException[重复]。

问题描述 投票:-1回答:1
abstract class Library {
  private String day;
  public String getDay()
  {
    return day;
  }
  public void setDay(String oo){
      day = oo;
   }

  public abstract String setDate();
}

class Books extends Library {
  public String setDate() {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");

    String dat = this.getDay();
    LocalDate localDate = LocalDate.parse(dat, formatter);

    LocalDate when = localDate.plusDays(7);

    String waitString = when.format(formatter);
    return waitString;
   }
}

class Main {
   public static void main(String[] args) {
   for (int i=0; i<10; i++){
        System.out.println(rent[i].getDay() + rent[i].setDate());
   }
}

Java在线程 "main "中给了我一个来自java.lang.NullPointerException的异常。String dat = this.getDay();但当我把它改为像 String dat = 23-Mar-2019它工作得很好。似乎java没有响应扩展类的 "this.getDay()",但我不知道如何解决这个问题。

java nullpointerexception
1个回答
-1
投票

在Java中,实例和类变量都是用你的默认值初始化的。对于对象,默认值是 null. 然后,如果你改变 private String day;private String day = LocalDate.now(); 你将不会收到一个nullPointerException。

或者你可以将你的方法改为

public String getDay()
 {
     if(day == null) return LocalDate.of(2020, 01, 01).toString();
     else return day;
 }
© www.soinside.com 2019 - 2024. All rights reserved.