2012-03-12 57 views
1

假设我有一个类animal,其子类为horse,duckrabbit。假设我使用make-instance来制作animal的几个对象。很久以后,我发现,对于这些对象中的每一个,它实际上是horseduckrabbit。有没有办法重新输入这些对象?简单地创建适当子类型的新对象并复制所有插槽中的数据将是笨拙的,因为此时这样的对象已经在其他对象的插槽中的列表中表示,并且我必须去通过这些列表并用新的替换旧对象。clisp,CLOS:重新键入对象,稍后

保留相同的旧对象并对其进行细分。我可以这样做吗?

回答

2

CHANGE-CLASS,一个标准的Common Lisp函数。

+0

...我不知道我是怎么错过这个的。它在CLtL就在那里。谢谢! – 2012-03-12 13:01:26

+3

哦,现在就来。你显然发布了一个问题,你已经知道为了传播Lisp的答案。 :) – Kaz 2012-03-12 15:55:35

相关问题