как я могу сделать по совету с форума:
"If TAnyObject would derive from TInterfacedObject and the interface contract is obeyed by all descendants that is indeed possible."
Но как мне это сделать? Если в описании интерфейса я уже возвращяю свой TAnyObject? (например методом getItem:TAnyObject)
Тоесть TAnyObject должен быть описан до IAnyObject, но тогда получается мне два раза повторять функционал TAnyObject в TMotoObject=class(TInterfacedObject,IAnyObject)
WTH?
сделайте чтобы getItem возвращало интерфейс IAnyObject и проблем не будет
Спасибо. В общем сделал я через возврат IAnyObject. Но тогда в потомках TAnyObject появляется конфликт при их getItem. Напишу через as 😔Оставлю этот вопрос на потом уже. https://forum.lazarus.freepascal.org/index.php/topic,56786.0.html
а я вообще проблемы непонял, у тебя 2 мапа с объектами разных типов зачем as
Их сейчас два, для примера. А так потом потомков TAnyObject будет куча. Соответственно будут списки потомки TAnyObjectList =class (specialize TFPGMap<string,TAnyObject>). Поэтому переопределять или переписать не вариант, если есть функционал уже в основном.
Обсуждают сегодня