题
假设我有一堂课 animal
, ,有子类 horse
, duck
, , 和 rabbit
. 。假设我使用 make-instance
制作多个类对象 animal
. 。很久以后,我发现,对于这些对象中的每一个,它实际上是一个 horse
, ,或一个 duck
, ,或一个 rabbit
. 。有没有办法重新输入这些对象?简单地创建适当子类型的新对象并复制所有插槽中的数据会很笨拙,因为此时这样的对象已经在列表中表示,而列表又位于其他对象的插槽中,我必须去通过这些列表并用新对象替换旧对象。
保留相同的旧对象并对它们进行子分类。我可以这样做吗?
解决方案
改变阶级, ,一个标准的 Common Lisp 函数。
不隶属于 StackOverflow