![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
Действительно, автокомплит работает. С new я тоже не прав.
Только у меня такую штуку в рантайме выкидывает: TypeError: Error #1007: Попытка реализации в объекте, который не является конструктором. at GalleryDraftPack::SHPreferences$cinit() .... Сейчас может быть, разберусь. |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
А, собственно, да, как он может создавать объект во время инициализации статических полей?
Неужели у Вас это компилируется? |
|
|||||
|
Да, толи вложенные классы в последнюю очередь инициализируются.
Но если очень хочется, то можно сделать так (работает): package com.mouseSupposes.bitmap { public class Preferences { public static var _preferencesGroup1:ReferenceGroup1; public static function get preferencesGroup1():ReferenceGroup1 { return _preferencesGroup1 ||= new ReferenceGroup1(); } public static var _preferencesGroup2:ReferenceGroup2; public static function get preferencesGroup2():ReferenceGroup2 { return _preferencesGroup2 ||= new ReferenceGroup2(); } } } class ReferenceGroup1 { public var color:uint = 0xffff00; public var indent:int; } class ReferenceGroup2 { public var color:uint; public var indent:int; } |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
Синглтон-таки.. :]
А здесь после первого вызова в _preferencesGroup1 присвоится new ReferenceGroup1(), и создаваться он больше не будет? Или просто вернет new ReferenceGroup1(), а _preferencesGroup1 останется тем, что есть? |
|
|||||
|
не надо путать синглтон со ленивой инициализацией.
И если бы я написал так: Не прокатило бы по той же причине, что и в первом случае. Хотя, оно, конечно "Хоть горшком называй, только в печку не суй" Цитата:
Это аналог: Второй раз не создастся |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
Понял. Да, это всё-таки удобнее, наверно, чем пакет делать. Вот где структуры бы...
expl, большое спасибо! |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|