假设我有一个类 animal
,它有子类 horse
、duck
和 rabbit
。假设我使用 make-instance
来制作多个 animal
类的对象。很久以后,我发现,对于这些对象中的每一个,它实际上是一匹马
,或一只鸭子
,或一只兔子
。有没有办法重新输入这些对象?简单地创建适当子类型的新对象并复制所有槽中的数据,将是笨拙的,因为此时这样一个对象已经在列表中表示,这些列表位于其他对象的槽中,我必须去通过这些列表并将旧对象替换为新对象。
保留相同的旧对象并对它们进行子分类。我可以这样做吗?
最佳答案
CHANGE-CLASS ,一个标准的 Common Lisp 函数。
关于lisp - clisp,CLOS : retyping an object, 之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9666701/