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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> variable ... might not have been initialized ??? Ничего не получается ... компилятор выда 
:(
    Опции темы
Nin
Дата 28.10.2004, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



привет всем !!! ...
компилятор выдаёт такую ошибку ... почему?

javac -source 1.4 -d /Users/users/ildar/out/hcss/lib @/tmp/jake43502.tmp
//.automount//fileserver.astro.rug.nl//root//Users//users//ildar//source//herschel//ia//numeric//function//fit//VerifyHrs//VerifyHrsTuning.java:179: variable Czero might not have been initialized
Czero[i] = FramesInput1[(4 + (2*i + 1)*258)];
^
//.automount//fileserver.astro.rug.nl//root//Users//users//ildar//source//herschel//ia//numeric//function//fit//VerifyHrs//VerifyHrsTuning.java:180: variable duration might not have been initialized
duration[i] = FramesInput1[(2 + (2*i + 1)*258)];
^
//.automount//fileserver.astro.rug.nl//root//Users//users//ildar//source//herschel//ia//numeric//function//fit//VerifyHrs//VerifyHrsTuning.java:182: variable CStar might not have been initialized
CStar[i] = (double)( ( 2 * Czero[i] - duration[i] ) / duration[i] );
^
//.automount//fileserver.astro.rug.nl//root//Users//users//ildar//source//herschel//ia//numeric//function//fit//VerifyHrs//VerifyHrsTuning.java:185: variable attenuators1 might not have been initialized
attenuators1[i] = 6.5;
^
//.automount//fileserver.astro.rug.nl//root//Users//users//ildar//source//herschel//ia//numeric//function//fit//VerifyHrs//VerifyHrsTuning.java:186: variable flag might not have been initialized
flag[i] = false;

а это кусок ошибочного кода...

double limit = 2586;
boolean[] flag;
double[] Czero;
double[] CStar;
double[] duration;
double[] attenuators1;
double[] attenuators2;
int i = 0;
double FramesInput1[] = HHDFrame1.getFrame();
while (i < 8) {
Czero[i] = FramesInput1[(4 + (2*i + 1)*258)];
duration[i] = FramesInput1[(2 + (2*i + 1)*258)];

CStar[i] = (double)( ( 2 * Czero[i] - duration[i] ) / duration[i] );

if (CStar[i] < limit ) {
attenuators1[i] = 6.5;
flag[i] = false;
} else {
attenuators1[i] = 13;
flag[i] = true;
}


i++;
}
//call report // FIXME <------
i = 0;
while (i < 8) {
Czero[i] = FramesInput1[(4 + (2*i + 1)*258)];
duration[i] = FramesInput1[(2 + (2*i + 1)*258)];

Может кто подскажет?
PM MAIL   Вверх
Sun
Дата 28.10.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

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



Это значит, что была попытка обратится к переменной, значение которой не было определенно. Нужно его определить хотя-бы равным null.


--------------------
Account removed
PM MAIL   Вверх
TrivialCore
Дата 28.10.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Надо инициализировать массив. Для каждого из них:
Код
Czero = new double[100];
соответственно вставляя размер и имя массива.
PM MAIL   Вверх
Nin
Дата 28.10.2004, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




И как это я и сам не догадался :D , большое спасибо, Работает !!!
PM MAIL   Вверх
redrick
Дата 29.10.2004, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



на самом деле вот это
TrivialCore
Цитата

Надо инициализировать массив. Для каждого из них:
Код
Czero = new double[100];
соответственно вставляя размер и имя массива.

имхо вовсе не обязательно - так создается лишний объект-массив
а суть ошибки действительно в том, что не проинициализированн он может оказаться (например если метод FramesInput1() вывалится с ексепшеном). Чтобы этого избежать нужно просто гарантировать наличие объекта, на который будет ссылаться ссылка. Хотя TrivialCore-способ вроде действительно самый простой и понятный.



--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
TrivialCore
Дата 29.10.2004, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



FramesInput - это массив, а не метод. Ты наверное имел ввиду метод getFrame().
На самом деле - нет! Приписание значений ячейкам массива должно проис-ходить после инициализации массива, поэтому это даже не зависит от того, что содержит FramesInput. Инициализация массива с помощью new - обязательна.
PM MAIL   Вверх
redrick
Дата 29.10.2004, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ой - ячейкам... вроде да - извини пожалуйста - ночью приколбасило что-то =) спасибо


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

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

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


 




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


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

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