2015-01-06 31 views
0

我希望能夠以填補微調
我有以下的方法來創建未知類型的ArrayList中,但是我錯過了正確的語法類型..
我需要通過它是類的類型(例如「Person」),微調控件的id和類的數組(「Person []」)。Java函數來設置未知類型的數組列表

private void fillSpinner(Class clss, int id, Class[] c_array) { 
    List<clss> list = new ArrayList<clss>(); 
    for (clss c : c_array) { 
     list.add(c); 
    } 
} 

c_array類型應該是clss的類型。
例如 - 調用這個methos應該是:

Person[] persons = .... 
fillSpinner(Person, R.id.person_spinner, persons) 

我缺少什麼?

謝謝。

回答

3

你需要做的方法一般,你並不需要的第一個參數:

private <T> void fillSpinner(int id, T[] array) { 
    List<T> list = new ArrayList<T>(); 
    for (T t : array) { 
     list.add(t); 
    } 
} 

然後,您就可以像這樣的方法提供通用型:

Person[] persons = .... 
fillSpinner<Person>(R.id.person_spinner, persons) 
+0

請修復您的錯字'列表';) – mihail

2
private <T> void fillSpinner(int id, T[] c_array) { 
    List<T> list = new ArrayList<T>(); 
    for (T c : c_array) { 
     list.add(c); 
    } 
}