Зависимость порядка объявления переменных в 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;
}
не падает.
расскажите, почему так происходит. сидел полдня. всё перепробовал. решил поменять местами просто так, уже из отчаяния. и к моему большому удивлению помогло. не думал что от того, в каком месте я объявлю переменную что-то зависеть будет...
заранее спасибо.
|