我有一堆擴展抽象基類的類。 每個子類都像構造函數中一樣使用數組(根據類的不同長度)。 這些類可以由其他人編寫。查找關於java中的類,軟件設計的信息?
找出班級需要的數組長度的最佳方法是什麼? 我可以: (A)要求每個派生類都有一個靜態方法,返回長度。 但是,基類無法執行此操作,因爲抽象靜態方法在java中不起作用。 (B)每個派生類都有一個沒有參數的構造函數,並且我構造了這樣的類,只是爲了能夠調用countParameters()方法,即可以從基類中強制執行和。這感覺是「狡猾」,因爲我不想創建這樣的對象,但只需要一些關於它的信息。
原因是我正在創建一個GUI,它使用戶能夠創建Derived類的 實例,但每個Derived類都有不同數量的參數。 也就是說,我需要知道如何在創建類之前繪製GUI。
編輯: 我可以只是要求每個派生類有一個私人的 構造函數,沒有參數,並使用反射我可以調用countParameters()方法。
編輯2:其實,我感興趣的是參數的名稱。 也就是說,如果派生的類具有構造
public Derived(double name1,double name2,...)
我需要一種方法來生成String []數組
{name1,name2,...}
我想這是不可能做到的,而無需創建的一個實例類, 但用戶能夠創建這樣的類,他/她需要參數名稱! 時刻22.
爲什麼要反射?如果方法被保護,你可以在你的基類中聲明它。 – meriton 2010-08-01 11:41:52
正如@soru所說*工廠模式*聽起來對這種事情是正確的。想想看,你根據情況(即參數的數量)實例化了孩子班級。看起來你已經爲此做了一些代碼。這不是另一個類。 – FK82 2010-08-01 12:25:03
這不是JDK中的PropertyEditor Stuff的全部內容嗎? – ZeissS 2010-08-01 12:50:11