我准备了Date和DateTest类,如下所示;
日期类
public Date( String m, int d, int y)
{
this("m",d,y);
}
DateTest Class
Date myDate2 = new Date("april",18 , 2013);
System.out.println(myDate2);
但我收到以下错误消息。任何人都可以告诉我问题是什么以及如何解决它。
错误消息 线程“main”中的异常java.lang.Error:未解决的编译问题: 递归构造函数调用Date(String,int,int)
at Date.<init>(Date.java:24)
at DateTest.main(DateTest.java:10)
答案 0 :(得分:4)
根据错误消息判断,我说调用this()
是导致问题的原因
public Date( String m, int d, int y)
{
this("m",d,y);
}
显然在你的构造函数中调用this("m",d,y);
意味着你在构造函数中进行递归调用,这甚至没有意义。
我的猜测是,你可能希望按照
的方式做点什么public Date( String m, int d, int y)
{
this.Month = m;
this.Day = d;
this.Year = y;
}
答案 1 :(得分:1)
在构造函数中调用它会使它无限递归。因此,这个错误。你最好用一些setter方法创建一个构造函数。阅读构造函数设计模式,这应该有所帮助。