Как я могу добавить объект overlayItem в массив?
Подскажите, пожалуйста, как я могу добавить объект overlayItem в массив? Я пытался таким образом:
GeoPoint point = new GeoPoint((int)(Double.parseDouble(arrCoordonate[1])),(int)(Double.parseDouble(arrCoordonate[0])));
OverlayItem overlayItem = new OverlayItem(point, Double.parseDouble(arrCoordonate[1]) + "", Double.parseDouble(arrCoordonate[0]) +"");
List<OverlayItem> arrItem[] = overlayItem;
Но я получил ошибку:
Несоответствие типов: невозможно преобразовать OverlayItem в List[]
2 ответа
Вы смешиваете массивы и списки. Если вам не нужно использовать массив, использовать список проще, и в этом случае вы, вероятно, намеревались написать:
List<OverlayItem> itemList = new ArrayList<OverlayItem> (); // create an empty list
itemList.add(overlayItem); // add you item to the list
Если вы хотите использовать массив, вы должны написать его так, но вам нужно самим управлять размером массива (поэтому проще использовать список, описанный выше):
OverlayItem[] itemArray = new OverlayItem[10]; //if you only need to insert 10 items
itemArray[0] = overlayItem;
Это правильно, потому что посмотрите на decleartion: OverlayItem overlayItem
а также List<OverlayItem> arrItem[]
,
Так что если вы arrItem[] = overlayItem
Вы неявное требование List<OverlayItem> = OverlayItem
,:)
(Я не уверен, но я думаю, что это даже "хуже" с []
в конце имени переменной. Я думаю, что скобки зарезервированы для массивов таким образом List<OverlayItem> arrItem[]
результаты в массиве списков oO)
Вы хотите создать новый список оверлейных элементов, а затем добавить элемент в этот список. Я не уверен, что вы можете создать экземпляр List
напрямую, поэтому я использую ArrayList
:
GeoPoint point = new GeoPoint((int)(Double.parseDouble(arrCoordonate[1])),(int)(Double.parseDouble(arrCoordonate[0])));
OverlayItem overlayItem = new OverlayItem(point, Double.parseDouble(arrCoordonate[1]) + "", Double.parseDouble(arrCoordonate[0]) +"");
ArrayList<OverlayItem> arrItem = new ArrayList<OverlayItem>();
arrItem.add(overlayItem);