【问题标题】:Java function to set unknown type of arraylistJava函数设置未知类型的arraylist
【发布时间】:2015-03-04 07:23:22
【问题描述】:

我希望能够创建未知类型的 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)

我错过了什么?

谢谢。

【问题讨论】:

    标签: java android generics arraylist


    【解决方案1】:

    你需要将方法设为Generic,不需要第一个参数:

    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)
    

    【讨论】:

    • 请修正您的错字List&lt;cT&gt; ;)
    【解决方案2】:
    private <T> void fillSpinner(int id, T[] c_array) {
        List<T> list = new ArrayList<T>();
        for (T c : c_array) {
            list.add(c);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多