Как я могу добавить объект 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);
Другие вопросы по тегам