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