我想重構我的代碼,因爲它包含冗餘的類聲明。避免硬連線的字段訪問
我有一個ContainerClass1類的類。假設類類型只包含一個名爲「content」的int變量的字段。
另一類ContainerFiller1類包含一個方法,該方法將ContainerClass1的實例作爲參數並將該字段設置爲某個值。 ContainerFiller1看起來是這樣的:
public class ContainerFiller1 {
public void fill(ContainerClass object_A) {
object_A.content = 99;
}
}
所以我用點符號來聲明,在哪裏可以找到(在這種情況下object_A)領域。
我有八個其他對象作爲類ContainerClass (ContainerClass object_B, ContainerClass object_C, ContainerClass object_D, etc.)
的實例。
這是我的問題:object_A.content = 99
是硬連線的,所以在dot-notation中,我不能將對象名稱作爲變量來調整我的路徑。作爲解決方法,我已經宣佈了九個單獨的ContainerFiller-Classes (ContainerFiller1, …, ContainerFiller9)
,每個人都有一個不同的領域制定者。作爲示例,ContainerFiller2
包含硬連線設置器object_B.content = 99
。
我想擺脫我的冗餘類,並從中排除ContainerFiller
類型的通用類。有沒有辦法以某種方式更改字段設置器概念,我可以參考fill(ContainerClass anyObject)
的參數列表中的對象名稱並動態調整字段設置器?對點符號的替代方案的建議也會受到歡迎。
在此先感謝
Threx
如何'object_A'硬線?這是一個傳遞給fill方法的參數。因此無論哪個實例傳遞給'fill'都會在該方法內變爲'object_A'。 – jingx
@jingx即使在周圍範圍內有一個現有的object_A? – Threx
圍繞什麼範圍?在Java中沒有全局變量,在你的'ContainerFiller1'類中沒有名爲'object_A'的實例變量。即使有,參數名仍然會優先。 – jingx