Java函数设置未知类型的arraylist

时间:2015-01-06 15:29:52

标签: java android generics arraylist

我希望能够创建未知类型的ArrayList以填充微调器 我有以下方法,但我错过了正确的语法类型..
我需要传递类类型(例如“Person”),微调器id和类的数组(“Person []”)。

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的类型 例如 - 调用这个方法应该是:

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

我错过了什么?

感谢。

2 个答案:

答案 0 :(得分:3)

您需要制作Generic方法,并且您不需要第一个参数:

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

然后,您将能够为此方法提供Generic类型:

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

答案 1 :(得分:2)

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