LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

вообще-то спецификация класса зависит от преметной области. у вас обьявлен видимо (насколько я умею читать жаву) - параметризованный класс клетка, содержащий один из типов животных. если вы так толкуете свою клетку - то это правильно.

но клетка может быть пустой, содержать не животных…а людей, или просто ящики с бананами и вообще, что угодно.

в наиболее общей формулировке - клетка должна быть параметризована «Предметом», поскольку там может быть что угодно.

если делать сериализацию/десериализацию ручками через некий формат, у записи в этом формате должно быть поле - уникальный тег класса. при десериализации читается этот тег и запускается «создатель» данного типа объекта из данных потока.

то есть создатель читает поток и создает обьект нужного типа из данных в нем.

ps. чтобы поместить разнзых животных в клетку надо иметь список на Animals, а не T. а актуальный T выяснять опять же по тегу например хранимому в обьекте или за счет рантаймовой поддержки выяснения актуального типа.

Исходная версия alysnix, :

вообще-то спецификация класса зависит от преметной области. у вас обьявлен видимо (насколько я умею читать жаву) - параметризованный класс клетка, содержащий один из типов животных. если вы так толкуете свою клетку - то это правильно.

но клетка может быть пустой, содержать не животных…а людей, или просто ящики с бананами и вообще, что угодно.

в наиболее общей формулировке - клетка должна быть параметризована «Предметом», поскольку там может быть что угодно.

если делать сериализацию/десериализацию ручками через некий формат, у записи в этом формате должно быть поле - уникальный тег класса. при десериализации читается этот тег и запускается «создатель» данного типа объекта из данных потока.

то есть создатель читает поток и создает обьект нужного типа из данных в нем.