2013-03-11 101 views
0

我有一組記錄,其變量要分配給UI中的一組標籤。 的問題是,我必須寫重複的代碼要顯示每個記錄,如:調用不同名稱的Java方法

label.setName1("") 
label.setDate1("") 

label.setName2("") 
label.setDate2("") 

有沒有辦法來遞增的方法,它是集合中記錄的位置數通過一個循環或一些東西,所以我不必在我的班級有重複的代碼?

+4

爲什麼你需要多種方法? – 2013-03-11 11:55:26

+0

對於這樣的場景我們使用一個列表。但是你的問題看起來不太清楚,因爲這個問題可以通過其他方式解決。如果我們能夠知道你想要做什麼 – 2013-03-11 11:55:38

+1

你可以使用反射,但是改變你的方法來傳遞參數的數字會更好。 'label.setName(1,「」)' – RoToRa 2013-03-11 11:56:32

回答

0

你可以使用反射來做到這一點。你可以看看herehere瞭解更多詳情。

+0

感謝您的幫助大家,非常感謝。 – ojap 2013-03-11 14:06:00

+0

@ojap不要僅僅因爲您認爲正確而使用反射。在大多數情況下,反射是一個錯誤的工具,因爲它很慢,而不是執行任務的「Java方式」。如果你告訴你使用你正在做的事情,我們可以幫助你找到更好更簡單的方法。 – RoToRa 2013-03-12 16:02:06

+0

@RoToRa我可以理解,它不是最好的工具,但是,這是一種不尋常的情況,並且面臨着時間壓力。如果我稍後有時間,我會研究重構。謝謝! – ojap 2013-03-12 21:16:51

0

是的,使用java反射。你可以得到一些名字的方法,然後讓它們爲你工作。

MyClass.getMethods() 

將返回您班級的所有方法。還有繼承的方法。如果你只想在你的類中聲明你可以使用getDeclaredMethods()替代方法(讀this

它們都將返回對象的數組與Method類型。之後,你可以爲你的對象調用它們。

但我認爲最好是改變你的類結構,並保持名稱,標籤和其他東西的數組,而不是每個屬性。

相關問題