在我賽前我有一個線程,它的運行方法必須具有隊列作爲輸入:Java線程的run方法
@Override
public void run(Queue q) {
// TODO Auto-generated method stub
A = q.pop();
System.out.println(A * A + "Pop1");
}
在這種情況下run方法是不是我運行的類的實現方法,因此如何我可以處理這個問題嗎?
在我賽前我有一個線程,它的運行方法必須具有隊列作爲輸入:Java線程的run方法
@Override
public void run(Queue q) {
// TODO Auto-generated method stub
A = q.pop();
System.out.println(A * A + "Pop1");
}
在這種情況下run方法是不是我運行的類的實現方法,因此如何我可以處理這個問題嗎?
將隊列設置爲構造函數中的參數。或者將它添加到setter中。 從run方法中刪除參數,但將其保留在方法體中。
您編寫了第二個run
方法,並帶有Runnable
的正確簽名。然後這個人可以以某種方式得到隊列並且調用其他的方法run
。
從原始的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");
}
幾種缺陷的方法,包括:a)本''@ Override''是在錯誤的方法; b)這並沒有說明他應該從哪裏接受「Queue」引用; c)這種「授權」在這裏確實不合適。 – f1sh
@ f1sh ..我錯誤地把覆蓋..我糾正它.. b)你真的認爲一個普通的Java程序員不知道如何調用參數化的方法?不要把這些愚蠢的評論請這樣。 c)請告訴我爲什麼這不合適... –
添加setter或構造函數arg來設置隊列,並且您的答案將完成。有一個額外的方法只能調用另一種方法,在這種情況下是不合適的。 – Gunslinger