2011-12-01 37 views
1
class History { 

    public String[] history; 

    public History(String[] history) { 
     if (history == null) 
      history = new String[]{}; 
     else 
      history = this.history 
    } 

} 

它只是不停地節省空下來不管我給它.. 所以不能用它工作..Java無法保存我的輸入。看到我的代碼

+0

new String [] {} ==沒有維數組==沒有實際使用。你想達到什麼目的? – Viruzzo

+0

你在代碼中究竟做了什麼?我認爲這些作業應該是this.history = ... if和else。 – aishwarya

+0

即使得到空輸入,我的程序也必須運行,因此我創建了if(history == null) history = new String [] {}; – Swupper

回答

9

不要你的意思呢?

else this.history = history; 

您還可以在此行錯誤:

history = new String[]{}; 

它應該是:

this.history = new String[]{}; 

當我編程,我從來沒有放棄局部變量相同的名稱作爲類變量。它只會導致混淆。

+0

Omg我一直在嘗試每一個我認爲我也是這樣做的:s – Swupper

+0

不要只是不經過思考就會太快。我們也錯過了'history = new String [] {};'line。 –

+0

@Swupper我今天花了2個小時調試一個我寫過(if)(item.searchIn == item.searchIn)而不是if(searchIn == item.searchIn)'(用javascript)寫的案例。編程時常常是需要花費最長時間才能理清的愚蠢的小錯誤。 – Oliver

5

使用this.history來引用類變量和history來引用方法參數。

你有這些困惑,並沒有正確設置成員變量。當你參考history時,這意味着該方法的參數,而不是成員變量。

public History(String[] history) 
{ 
    if (history == null) 
     this.history = new String[]{}; 
    else 
     this.history = history; 
} 
0

對於分配,使用

this.history = history 

代替。我認爲局部變量和對象屬性之間存在命名衝突。