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