0

我准备了 Date 和 DateTest 类,如下所示;

日期类

public Date( String m, int d, int y)
{
this("m",d,y);
}

日期测试类

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)
4

2 回答 2

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;
}
于 2013-04-24T21:12:08.517 回答
1

在构造函数中调用 this 会使其无限递归。因此出现了这个错误。您最好使用一些 setter 方法创建构造函数。阅读构造函数设计模式,这应该会有所帮助。

于 2013-04-24T21:16:32.163 回答