我有三個非常類似的類,除了一個方法。因此,我選擇將其餘的功能放到抽象的超類中。然而,當談到創建這些類的實例時,我對如何實現在我看來像「顯而易見」或「優雅」的方法感到茫然。它們的構造基本上是相同的,我需要每一個的多個實例,所以我想做一些類似如下:Java - 通常處理子類的創建
private SubclassA[] subclassA_array, SubclassB[] subclassB_array, SubclassC[] subclassC_array;
subclassA_array = new SubclassA[getNumInstancesOfClassANeeded()]
subclassB_array = new SubclassA[getNumInstancesOfClassBNeeded()]
subclassC_array = new SubclassA[getNumInstancesOfClassCNeeded()]
// might have my syntax wrong here; array of the three subclass arrays
private Superclass[][] superArray = new Superclass[][3];
superArray[0] = subclassA_array;
superArray[1] = subclassA_array;
superArray[2] = subclassA_array;
for (Superclass[] array: superArray)
for(int i = 0; i< array.length; i++)
// array[i] = new..... what goes here?
}
}
我將如何找到合適的類在最內部循環來構建?這實際上是一種解決問題的非常古怪的方式;我錯過了更明顯的東西嗎?我應該說「去死吧!」只有三個獨立的循環?
你能解釋一下「脆弱」的評論嗎? – Corv
它很脆弱,因爲步驟2和3涉及可能會拋出異常的反射操作。相比之下,通過簡單的方法,大多數/所有的檢查都是在編譯時進行的。編譯時間類型安全/類型檢查更健壯。 –