我正在尝试做某事
work (a_father: FATHER)
do
if a_father.conforms_to ({DEVELOPER}) then
a_father.code
else
a_father.change_job ({DEVELOPER})
end
end
编译有效,但是在我的实现@runtime中,它没有通过。我输错了什么?
答案 0 :(得分:1)
示例中的问题是您试图查看类型FATHER
(对象a_father
的类型)是否符合类型TYPE [DEVELOPER]
(对象{ {1}}。
您应该做的是:
{DEVELOPER}
因此将if a_father.generating_type.is_conforming_to ({DEVELOPER}) then
与TYPE [FATHER]
进行比较。
请注意,我认为通过将TYPE [DEVELOPER]
替换为is_conforming_to
可以起作用,但是类conforms_to
为该例程TYPE
引入了更具体的参数类型。
答案 1 :(得分:1)
我最好使用内置机制来检查对象类型的符合性:
if attached {DEVELOPER} a_father as dev then
dev.code
else
a_father.rest
end
并在前提条件中使用相同的方法:
attached {RELATED_DB_ENTITY} a_relationship_entity
对象测试可以完成您想做的事情:它检查附加到参数a_relationship_entity
上的对象的类型是否符合类型RELATED_DB_ENTITY
。