У меня есть метод, чтобы преобразовать массив с ArrayList следующим образом:Общий метод для преобразования массива в ArrayList
public static <T> ArrayList<T> getArrayList(T[] a){
ArrayList<T> retList = new ArrayList<T>();
for (T i : a){
retList.add(i);
}
return retList;
}
, который прекрасно работает для массивов объектов, таких как:
String[] arr = {"String","'nother string","etc"};
ArrayList<String> stringList = initArrayList(arr);
Но не примитивные массивы:
int[] arr2 = {1,2,3};
ArrayList<Integer> intList = initArrayList(arr2); //Compiler is insulted by this.
Я предполагаю, что я должен преобразовать массив в массив Integer, если я хочу, чтобы метод работы , но есть ли способ сделать метод немного более умным в том, как он справляется с этим?
Java-учебники сайт имеет следующее:
static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
for (T o : a) {
c.add(o); // Correct
}
}
Который будет работать, но я хотел бы метод, который будет создавать ArrayList.
Кроме того, это только для моего собственного развлечения, поэтому тип коллекции действительно не имеет значения, я просто использовал ArrayList, когда написал метод.
Благодаря
Нет, на самом деле нет. Примитивные массивы и дженерики не собираются смешиваться. –
Посмотрите на это http://stackoverflow.com/questions/754294/convert-an-array-of-primitive-longs-into-a-list-of-longs –