2013-05-10 3 views
1

Я учусь о Java, и я застрял в этой проблеме ArrayList: компилятор дал мне ошибку, когда я пытаюсь использовать простые методы, например add. Вот код:Методы ArrayList не работают

public class ArrayList { 

    public static void main(String[] args) { 
     ArrayList list = new ArrayList(); 
     list.add("Value A"); 
     list.add("Value B"); 
     list.add("Value C"); 
    } 
} 

Метод определен в the Javadoc.

Это должно быть действительно просто, но я действительно не знаю, что я делаю неправильно здесь.

+0

Необходимо предоставить сообщение об ошибке, которую вы получаете. Подумайте, если кто-то подошел к вам и сказал: «компилятор дает мне ошибку, когда я пытаюсь использовать простые методы, например, добавить« что будет вашим первым вопросом ... Какая ошибка? ... – Sorceri

+1

Кстати, используйте дженерики. Переменная 'list' должна быть определена как« Список »и инициализирована как« новый ArrayList () »или« новый ArrayList <>() 'в Java 7. –

ответ

22

Вы создали свой собственный класс ArrayList и не используете built-in Java class. Вы не определили add.

+0

double upvote ... –

+0

@Downvoter: Почему нисходящий? Мой анализ проблемы верен. – rgettman

+0

Я почти упал в ловушку (сырой тип). – arynaq

-2

Почему вы создаете новый класс ArrayList? Наверняка вы хотите сделать что-то вроде:

ArrayList<String> list = new ArrayList<String>(); 
list.add("Value A"); 
list.add("Value B"); 
list.add("Value C"); 

?

3

Изменить код

java.util.ArrayList list = new java.util.ArrayList(); 

это будет сказать компилятору, что вы хотите предопределенный ArrayList, а не ваше новое определение ArrayList.

-2

ArrayLists необходимо инициализировать по-разному для стандартных массивов.

То, что вы хотите что-то вроде этого:

ArrayList<Object> list = new ArrayList<Object>(); 
list.add(Object o); 

Помните, что почти все в Java является Object.

Так что вы можете сделать:

ArrayList<String>... 
ArrayList<Integer>... 

Но самый мощный особенность ArrayLists, и причина, я использую их, когда вы начинаете делать свои собственные классы - например, в разработке игр, общий класс люди делают это Sprite - вы можете создать ArrayList всех спрайтов, такие, как показано ниже:

public class Sprite {}.... 
ArrayList<Sprite> spriteList = new ArrayList<Sprite>(); 
+2

-1. Не только этот ответ неправильно адресован, проблема, он предлагает «ArrayList », что недопустимо в стандартной Java. – wchargin

+0

Не знал о классе Int ... –

+0

@WChargin - Изменено как целое как объект, а не как int. Извините за ошибку. -_- – Singular1ty

-1

класса БЩЕСТВЕННЫХ ArrayList {

public static void main(String[] args) { 
    ArrayList list = new ArrayList(); 
    list.add("Value A"); 
    list.add("Value B"); 
    list.add("Value C"); 
} 

}

ваше имя класса является ArrayList попытка изменить название и импорт Список_массивов Class Пакет

0

Ответ очень прост. Просто измените свое имя класса ArrayList на что-то еще, потому что ArrayList является классом по умолчанию в Java.

+0

Что вы подразумеваете под словом «default class»? – rgettman

+0

Я имею в виду предопределенный класс в java –

Смежные вопросы