Java 将公历转换为字符串但引发异常
运行程序并尝试显示购买日期后,程序会抛出异常 以下是购买日期的getter和setter代码:Java 将公历转换为字符串但引发异常,java,tostring,gregorian-calendar,Java,Tostring,Gregorian Calendar,运行程序并尝试显示购买日期后,程序会抛出异常 以下是购买日期的getter和setter代码: public void setPurchaseDate(String purchaseDate){ String[] dateSplit = purchaseDate.split("/"); int month, day, year; month = Integer.parseInt(dateSplit[0]); day = Integer.parseInt(dateS
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结果:11。)首先检查您传递的格式是否有效“MM/DD/YYYY”
或使用此“MM/DD/yyyyy”
2.)同样在
函数setPurchaseDate
中,您有未设置日期
,并且在getter
中我们调用this.purchaseDate.getTime()
,其中this.purchaseDate
将为空。因此,首先正确设置该值,并添加一个空检查。始终提供异常和堆栈跟踪。现在请阅读并注意,您实际上没有在setPurchaseDate
方法中设置purchaseDate
字段。谢谢!今天我一直在用这种方式工作了很长时间,没有注意到我的简单错误。@jscincy1如果答案真的对你有帮助,请接受/投票。