2013-08-06 110 views
-1

在我賽前我有一個線程,它的運行方法必須具有隊列作爲輸入:Java線程的run方法

@Override 
public void run(Queue q) { 
    // TODO Auto-generated method stub 
    A = q.pop(); 
    System.out.println(A * A + "Pop1"); 

} 

在這種情況下run方法是不是我運行的類的實現方法,因此如何我可以處理這個問題嗎?

回答

3

將隊列設置爲構造函數中的參數。或者將它添加到setter中。 從run方法中刪除參數,但將其保留在方法體中。

0

您編寫了第二個run方法,並帶有Runnable的正確簽名。然後這個人可以以某種方式得到隊列並且調用其他的方法run

0

從原始的run()的螺紋,呼叫運行(隊列Q)方法

@Override 
public void run() { 

//call the run(Queue q) method from here 
} 

public void run(Queue q) { 
// TODO Auto-generated method stub 
A = q.pop(); 
System.out.println(A * A + "Pop1"); 

}

+0

幾種缺陷的方法,包括:a)本''@ Override''是在錯誤的方法; b)這並沒有說明他應該從哪裏接受「Queue」引用; c)這種「授權」在這裏確實不合適。 – f1sh

+0

@ f1sh ..我錯誤地把覆蓋..我糾正它.. b)你真的認爲一個普通的Java程序員不知道如何調用參數化的方法?不要把這些愚蠢的評論請這樣。 c)請告訴我爲什麼這不合適... –

+1

添加setter或構造函數arg來設置隊列,並且您的答案將完成。有一個額外的方法只能調用另一種方法,在這種情況下是不合適的。 – Gunslinger

相關問題