2013-09-28 4 views
-2

У меня есть очень простой код:JAVA: Добавить строку (file.getAbsolutePath()) в список (List)

private final JFileChooser chooser; 
private List list, fileList; 

//some codes 

int returnVal = chooser.showDialog(CountdownTimer.this, "Select Files"); 

    if(returnVal==JFileChooser.APPROVE_OPTION) { 
     File[] file = chooser.getSelectedFiles(); 

     System.out.println("Selected files:"); 
     for(int i=0; i<file.length; i++) { 
      list.add(file[i].getName()); 
      fileList.add(file[i].getAbsolutePath()); 
      System.out.println("list["+i+"] "+file[i].getName()); 
      System.out.println("fileList["+i+"] "+file[i].getAbsolutePath()); 
     } 

    } 
    else System.out.println("No selection."); 

Мне нужно два списка. Первый будет использоваться для просмотра (и удаления) целей, в то время как другой для записи всех выбранных файлов. В zip-файлах мне понадобится имя и имя файла. Но по какой-то причине, линия

fileList.add(file[i].getAbsolutePath()); 

генерирует ошибку "Исключение в потоке "" java.lang.NullPointerException" АВТ-EventQueue-0 в то время как линия

list.add(file[i].getName()); 

делает штраф. Я использую Список списков для GUI и Список файловList для кода на молнии.

+0

Вы инициализируетесь как список и FileList указать в список объектов? –

ответ

2

я не видел нигде fileList (или list), которые экземпляр так:

fileList = new ArrayList<String>(); 

Совет: Вы должны серьезно посмотреть на Java дженериков и объявить списки, как это:

private List<String> list, fileList; 

, чтобы сделать его напечатанным List, который может содержать только String объектов.

+0

Если я это сделаю, мне придется изменить файлList на ArrayList . Мне нужно, чтобы мои списки были динамическими. Кроме того, я не делал этого с другим списком, который все в порядке. Сделайте это: личный список , файлList также генерирует ошибку. – jennygii

0

private List list, fileList; // здесь возникает проблема, необходимая для инициализации списка.

замените код ниже

private List<String> list new ArrayList<String>(); 

private List<String> fileList new ArrayList<String>(); 
+1

Он генерирует ошибку, которая говорит ** Список типов не является общим; его нельзя параметризовать аргументами ** – jennygii

0

Что я сделал:

private List list; 
    private ArrayList<String> fileList = new ArrayList<String>(); 
Смежные вопросы