История изменений
Исправление alysnix, (текущая версия) :
вообще-то спецификация класса зависит от преметной области. у вас обьявлен видимо (насколько я умею читать жаву) - параметризованный класс клетка, содержащий один из типов животных. если вы так толкуете свою клетку - то это правильно.
но клетка может быть пустой, содержать не животных…а людей, или просто ящики с бананами и вообще, что угодно.
в наиболее общей формулировке - клетка должна быть параметризована «Предметом», поскольку там может быть что угодно.
если делать сериализацию/десериализацию ручками через некий формат, у записи в этом формате должно быть поле - уникальный тег класса. при десериализации читается этот тег и запускается «создатель» данного типа объекта из данных потока.
то есть создатель читает поток и создает обьект нужного типа из данных в нем.
ps. чтобы поместить разнзых животных в клетку надо иметь список на Animals, а не T. а актуальный T выяснять опять же по тегу например хранимому в обьекте или за счет рантаймовой поддержки выяснения актуального типа.
Исходная версия alysnix, :
вообще-то спецификация класса зависит от преметной области. у вас обьявлен видимо (насколько я умею читать жаву) - параметризованный класс клетка, содержащий один из типов животных. если вы так толкуете свою клетку - то это правильно.
но клетка может быть пустой, содержать не животных…а людей, или просто ящики с бананами и вообще, что угодно.
в наиболее общей формулировке - клетка должна быть параметризована «Предметом», поскольку там может быть что угодно.
если делать сериализацию/десериализацию ручками через некий формат, у записи в этом формате должно быть поле - уникальный тег класса. при десериализации читается этот тег и запускается «создатель» данного типа объекта из данных потока.
то есть создатель читает поток и создает обьект нужного типа из данных в нем.