clipe, CLOS:redigitando um objeto, mais tarde
-
12-12-2019 - |
Pergunta
Suponha que eu tenha uma aula animal
, com subclasses horse
, duck
, e rabbit
.Suponha que eu use make-instance
fazer vários objetos de classe animal
.Muito mais tarde, descubro, para cada um desses objetos, que na verdade é um horse
, ou um duck
, ou um rabbit
.Existe uma maneira de redigitar esses objetos?Simplesmente criar novos objetos dos subtipos apropriados e copiar os dados em todos os slots seria desajeitado, porque a essa altura tal objeto já está representado em listas que estão em slots de outros objetos, e eu teria que ir através dessas listas e substitua os objetos antigos pelos novos.
Mantenha os mesmos objetos antigos e subclassifique-os.Posso fazer isso?
Solução
MUDANÇA DE CLASSE, uma função Common Lisp padrão.