2013-04-24 53 views
0

我準備了下面顯示的Date和DateTest類;Java字符串方法錯誤

日期類

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

DateTest類

Date myDate2 = new Date("april",18 , 2013); 
System.out.println(myDate2); 

但我收到以下的錯誤消息。任何人都可以告訴我問題是什麼以及我如何解決問題。

錯誤消息 異常在線程 「主要」 java.lang.Error的:未解決問題彙編: 遞歸構造函數調用日期(字符串,整數,INT)

at Date.<init>(Date.java:24) 
at DateTest.main(DateTest.java:10) 

回答

4
通過

錯誤消息來看,我想說的是調用this(),是什麼導致了問題

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

在C顯然調用this("m",d,y); onstructor意味着你在構造函數中進行遞歸調用,這甚至沒有意義。


我的猜測是,也許你正在尋找一起做的

public Date(String m, int d, int y) 
{ 
    this.Month = m; 
    this.Day = d; 
    this.Year = y; 
} 
+0

+1在我心中:D – DmiN 2013-04-24 21:13:23

+0

那麼,我該如何解決它山姆? – Behzat 2013-04-24 21:14:21

+1

@Behzat擺脫那一行。如果你詳細說明你認爲該線路應該是什麼,我可能會告訴你如何替換它 – 2013-04-24 21:16:03

1

調用這裏面的構造函數使它無限遞歸線的東西。因此那個錯誤。用一些setter方法創建構造函數會更好。閱讀關於構造器設計模式,這應該有所幫助。