Java 函数设置未知类型的arraylist
Java function to set unknown type of arraylist
我希望能够创建未知类型的 ArrayList 以填充微调器
我有下面的方法,但是我错过了正确的语法类型..
我需要将 class 类型(例如 "Person")、微调器 ID 和 classes 的数组 ("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)
我错过了什么?
谢谢。
private <T> void fillSpinner(int id, T[] c_array) {
List<T> list = new ArrayList<T>();
for (T c : c_array) {
list.add(c);
}
}
您需要将方法设为泛型并且不需要第一个参数:
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)
我希望能够创建未知类型的 ArrayList 以填充微调器
我有下面的方法,但是我错过了正确的语法类型..
我需要将 class 类型(例如 "Person")、微调器 ID 和 classes 的数组 ("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)
我错过了什么?
谢谢。
private <T> void fillSpinner(int id, T[] c_array) {
List<T> list = new ArrayList<T>();
for (T c : c_array) {
list.add(c);
}
}
您需要将方法设为泛型并且不需要第一个参数:
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)