Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Инициализация LIST


Автор: milvus 25.12.2012, 11:02
Почему ни одна инициализация не работает?

класс который надо поместить в list
Код

package files;
public class file 
{
private String _name;
public String getName() {
    return _name;
}
public void setName(String _name) {
    this._name = _name;
}
}


в этом варианте нельзя сделать result.add(This_file);
Код

List<file> result = null; 


А в этих варианах пишет что не может ArrayList cannot be resolved to a type


Код

List<file> result = new List<file>(); 



Код

List<file> result = new ArrayList<file>(); 



Код

List<file> result = new LinkedList<file>(); 


Автор: Nofate 25.12.2012, 11:09
Код

List<file> result = null; 

В этом случае переменная result у вас вообще остается неинициализированной. Соответственно при любых обращениях к ней вы получите NullPointerException.

Код

List<file> result = new List<file>(); 

Тут вы ошибочно пытаетесь вызвать конструктор класса List. Беда в том, что List - это всего лишь интерфейс, описывающий методы, которые должен реализовывать список. Напрямую создать экземпляр интерфейса нельзя.

Код

List<file> result = new ArrayList<file>(); 

А это правильный вариант. ArrayList cannot be resolved to a type значит, что компилятор не знает о каком таком ArrayList идет речь. Нужно импортировать его.
После строчки "package files;" добавьте
Код

 import java.util.ArrayList;


PS. В java принято давать имена классам, начинающиеся с большой буквы. Это позволит избежать путаницы между классами и переменными.

Автор: milvus 25.12.2012, 11:22
Ура! 3 часа копания в коде а оказалось вот из за этого, Спасибо! 
П.С. да про классы понял, поменял! Двигаемся дальше!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)