我有一個數據庫表,其中包含一個名爲type的列。對於數據庫列中的每一行,我必須根據類型創建一個對象。目前,我使用if else語句爲:根據類型創建不同的對象
if (type.equals("object1")){
Object1 object1 = new Object1();
}
else if (type.equals("object2")){
Object2 object2 = new Object2();
}
有些更好的辦法是使用一個枚舉,作爲類型的數量是有限的,但有沒有可能讓一個對象的創建依賴於價值的字符串?
我願意以另一種方式解決我的問題,而不是我試圖解決的問題。
我正在爲Android開發,因此switch語句不起作用 – 2012-02-07 10:22:23
好點,關閉也一樣。第一個例子會工作。您可能需要在名稱的開頭添加一個包,並更改第一個字母的大小寫。 ;) – 2012-02-07 10:27:17
我想對象o = Class.forName(type).newInstance();我認爲這將最適合我。然而,我堅持傳遞構造函數變量。我需要通過一個int和兩個字符串,這個問題解決這個問題,但我似乎無法弄清楚(或只是瞭解會發生什麼)http://stackoverflow.com/questions/234600/can-i-class-class -newinstance-with-constructor-arguments – 2012-02-07 10:48:13