我正在使用两个课程:日期和考试。Date 从三个整数中设置一个 Date 对象:日、月、年;Exam 从一个 String courseName 和一个 Date 对象中设置一个 Exam 对象。
我正在尝试运行此代码:
public Exam(String name, Date d)
{
courseName=name;
examDate=new Date(d);
}
//**a method that checks if two dates are equal**
public boolean equals (Date r)
{
return (examDate.equals(r));
}
public static void main(String[] args)
{
Date d=new Date(11,11,2011);
String a=new String("OOP");
Exam b=new Exam(a,d);
Date c=new Date(11,11,2011);
System.out.println(b.equals(c));
}
当我尝试运行代码时,线程“main”中出现错误异常java.lang.StackOverflowError
该错误表明问题出在 Date 类中的一行上,该类检查两个日期是否相等:
public boolean equals (Date d)
{
return (this.equals(d));
}
我会很感激知道为什么会这样。