有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将公历转换为字符串,但引发异常

运行程序并尝试显示购买日期后,程序会抛出异常 以下是购买日期的getter和setter代码:

public void setPurchaseDate(String purchaseDate){
    String[] dateSplit = purchaseDate.split("/");
    int month, day, year;
    month = Integer.parseInt(dateSplit[0]);
    day = Integer.parseInt(dateSplit[1]);
    year = Integer.parseInt(dateSplit[2]);
    GregorianCalendar date = new GregorianCalendar (year, month-1, day);
}

public String getPurchaseDate(){
    String date;
    SimpleDateFormat sdf = new SimpleDateFormat("MM/DD/YYYY");
    date = sdf.format(this.purchaseDate.getTime());
    return date;
}

这是控制台中的异常:

Exception in thread "main" java.lang.NullPointerException
at jasonsiboleproject5.motorVehicle.getPurchaseDate(motorVehicle.java:88)
at jasonsiboleproject5.car.toString(car.java:69)
at java.lang.String.valueOf(String.java:2847)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at java.util.AbstractCollection.toString(AbstractCollection.java:458)
at java.lang.String.valueOf(String.java:2847)
at java.io.PrintStream.println(PrintStream.java:821)
at jasonsiboleproject5.mainclass.main(mainclass.java:83)

Java结果:1


共 (1) 个答案

  1. # 1 楼答案

    1.)首先检查您传递的格式,它是有效的"MM/DD/YYYY"还是使用此"MM/dd/yyyy"

    (二)同样在你的function setPurchaseDate中,你有not set the date,在getter中我们调用this.purchaseDate.getTime(),其中this.purchaseDate将为空。因此,首先正确设置该值,并添加一个空检查