Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не получается задать длину массива из конструктора, поскажите как сделать 
:(
    Опции темы
ayurevi4
  Дата 15.8.2010, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.12.2009

Репутация: нет
Всего: нет



Проблевка в length. Когда вычисления нужной длины массива и устанавливаю в  length то там почему то пусто. Вот. Подскажите как сделать

Код

import java.io.File;

class  SortedDirList{
    private int length;
    private String array[] = new String[length];
    
    public SortedDirList(String pach) {
        // TODO Auto-generated constructor stub
        File dir = new File(pach);
        File[] fls = dir.listFiles();
        length = fls.length;
        if (fls != null)
            for (int i = 0; i < fls.length; i++){
             array[i]=fls[i].getName();
            }                
    }
    public void list(){
        for(int i=0; i<length; i++){
            System.out.println(array[i]);
        }
    }
    public void list(String fileType){
        
    }
    public void size(){
        
    }
}
public class Dir {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SortedDirList xxx = new  SortedDirList("C:\\");
        xxx.list();
    }

}


PM MAIL ICQ   Вверх
dorogoyIV
Дата 15.8.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



Код

    private int length;
    private String array[] = new String[length];

переменная length еще не инициализирована, а ты уже хочешь длину массива указать

PM MAIL   Вверх
ayurevi4
Дата 15.8.2010, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.12.2009

Репутация: нет
Всего: нет



а как же вот это length = fls.length;.
пройдись дебагером. когда доходим до места где начинаю пихать из одного массива в другой переменная length имеет значение. а массива с тем же количеством элементов нету.
PM MAIL ICQ   Вверх
dorogoyIV
Дата 15.8.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



Код

import java.io.File;

class  SortedDirList
{
 private int length; // length = 0 !!!
 private String array []; // = new String [length];

 public SortedDirList(String pach)
 {
  File dir = new File(pach);
  File [] fls = dir.listFiles();
  length = fls.length;

  array = new String [length]; // !!! здесь можно уже задать длину

  if (fls != null)
   for (int i = 0; i < fls.length; i++)
    array [i] = fls [i].getName();
 }

 public void list()
 {
  for(int i = 0; i < length; i++)
   System.out.println(array [i]);
 }
}

public class Dir
{
 public static void main(String[] args)
 {
  SortedDirList xxx = new  SortedDirList("C:\\");
  xxx.list();
 }
}

PM MAIL   Вверх
ayurevi4
Дата 15.8.2010, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.12.2009

Репутация: нет
Всего: нет



ооооо спасибо. то что нада
PM MAIL ICQ   Вверх
Skipy
Дата 16.8.2010, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 6
Всего: 16



Цитата(ayurevi4 @ 15.8.2010,  12:43)
а как же вот это length = fls.length;.
пройдись дебагером. когда доходим до места где начинаю пихать из одного массива в другой переменная length имеет значение. а массива с тем же количеством элементов нету.

Вот-вот. Пройдитесь дебаггером. Хорошим. Который покажет, что сначала создаются переменные экземпляра - в том числе и массив с длиной, которую в этот момент имеет переменная lеngth, т.е. 0, - а потом уже только вызывается конструктор.

Это сообщение отредактировал(а) Skipy - 16.8.2010, 10:24


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.