2011-06-04 208 views
0

我正在開發一個帳戶應用程序。當我嘗試運行發票表單時,發生了一個叫做堆棧溢出異常的情況......告訴我該怎麼做......在我宣佈庫存類中有一個發票對象之前,一切都很好。 這是輸出...堆棧溢出錯誤?

run: 
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError 
    at sun.awt.Win32GraphicsConfig.getBounds(Native Method) 
    at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:215) 
    at java.awt.Window.init(Window.java:394) 
    at java.awt.Window.<init>(Window.java:433) 
    at java.awt.Frame.<init>(Frame.java:403) 
    at java.awt.Frame.<init>(Frame.java:368) 
    at javax.swing.JFrame.<init>(JFrame.java:158) 
    at Invoice.<init>(Invoice.java:10) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 

    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
    at Stock.<init>(Stock.java:670) 
    at Invoice.<init>(Invoice.java:1135) 
BUILD SUCCESSFUL (total time: 5 seconds) 
+5

好了,沒有人可以幫你沒有看到相應的代碼! – 2011-06-04 12:07:22

+2

您可能有一個不會終止的遞歸調用,但由於我沒有源代碼,因此我看不到問題。發佈代碼示例(http://www.sscce.org/) – sverre 2011-06-04 12:08:40

+4

這個看起來很簡單。股票和發票構造函數以遞歸方式調用。 – Rekin 2011-06-04 12:09:29

回答

17

Invoice構造函數中,您要創建一個新的Stock對象(行1135)。

在構造函數Stock中,您正在創建一個新的Invoice對象(在行670中)。

在構造函數Invoice中,您正在創建一個新的Stock對象(在行1135中)。

依此類推,直到達到最大堆棧深度。你需要找出哪一個InvoiceStock應該自動創建另一個的新實例,或創建對象,然後將它們分配給對方。

2

嗯..我們需要看到一些代碼纔可以回答你,但是當你有一些代碼自稱永遠沒有結束計算器異常通常發生(遞歸,沒有進步)。所以,你應該看看你的代碼,什麼條件下找出它應該終止循環,爲什麼它不這樣做又:)