我喜歡創建一個將從方法傳遞給方法的數據列表,但是我不能使用結構,因爲包含在這個列表中的數據將根據輸入而變化。不同類型的列表?
例如
if (x == 1) {
a = 1
b = true
c = 42
d = "hello"
}
if (x == 2) {
a = 2
b = 'g'
c = "sup"
}
我相信我的選擇是這樣的:
- 創建一個字符串數組或列表,並且投中的數據回到它原來是從字符串。這很麻煩,可能會導致無法解釋的輸入錯誤,但不會太糟糕,因爲它在運行時都會被檢測到。
- 爲每種可能性創建一個結構 - 這是否是一種好的做法?
- 不知何故使用泛型。據我所知,雖然泛型是類型安全的,但不是類型嚴格的,但在使用之前必須將其轉換爲類型。例如,如果我想在這裏列出項目,我需要將它們轉換爲字符串,就像在解決方案1中發生的情況一樣,這使得它無用。
我的問題是,那麼這些選項中哪一個最好?還是有一種替代選擇使用某種我不知道的泛型類型?每種情況下的可能變量的數量可能會改變,就像它們的類型一樣。我希望能夠將單個List或Array返回給調用方法,以便它可以適當地處理結果。它將知道如何處理基於a的值的每組數據,因爲它將是'動作選擇'標識符。我也知道每次將它們投射到物體上並返回是非常緊張的,所以我寧願避免這種情況。
這可能是很簡單,但它已經難倒了我...
爲了提供更多信息,基本上這是根據用戶的選擇嘗試解釋來自輸入字符串的各種數據。如果他們說了一件事情,我需要檢查這些數據,然後抓住它,製作一份這些數據及其類型的列表(各種信息都來源於此信息)。 問題是我想讓它可擴展,所以我總是可以添加東西而不必遵循嚴格的結構,並且我不應該在使用時重新設置所有東西。 我喜歡ArrayList的建議,以及重構。我會嘗試修改它。 – George 2009-09-07 13:49:46