Показать сообщение отдельно
Старый 13.01.2005, 13:22   #1  
doo is offline
doo
Участник
 
41 / 10 (1) +
Регистрация: 05.11.2004
Зависимость порядка объявления переменных в classDeclaration
Доброго дня. Боюсь показаться неоригинальным, но всё же. Объясните, пожалуйста.

есть класс FactureJourCreate_RU, есть у него classDeclaration, есть метод new().
краткий листинг classDeclaration:

abstract class FactureJourCreate_RU extends RunBaseBatch
{
Map mapInvoiceTrans;
.....
Map vatCodeCache;
}

объявляю в classDeclaration переменную:

abstract class FactureJourCreate_RU extends RunBaseBatch
{
Map mapInvoiceTrans;
.....
ProjId projId;
.....
Map vatCodeCache;
}

после этого выполнение метода new():

public void new()
{
super();

mapInvoiceTrans = new Map(Types::CONTAINER, Types::REAL);
vatCodeCache = new Map(Types::CONTAINER, Types::STRING);
unpackMap = true;
showProgress = true;
recalcTaxes = true;
}

падает на строке: vatCodeCache = new Map(Types::CONTAINER, Types::STRING);

объявляю так:

abstract class FactureJourCreate_RU extends RunBaseBatch
{
ProjId projId;
Map mapInvoiceTrans;
.....
Map vatCodeCache;
}
падает на строке: mapInvoiceTrans = new Map(Types::CONTAINER, Types::REAL);

объявляю так:

abstract class FactureJourCreate_RU extends RunBaseBatch
{
Map mapInvoiceTrans;
.....
Map vatCodeCache;
ProjId projId;
}

не падает.

расскажите, почему так происходит. сидел полдня. всё перепробовал. решил поменять местами просто так, уже из отчаяния. и к моему большому удивлению помогло. не думал что от того, в каком месте я объявлю переменную что-то зависеть будет...

заранее спасибо.