在Smalltalk中有一种简单的方法吗?我80%确定有一些方法,但无法在任何地方找到它。
我知道我可以使用
(instance class = SomeClass) ifTrue:
而且我知道我可以使用superclass
等...但我希望内置有一些内容:)
答案 0 :(得分:20)
测试Object是否是Class的实例:
(anObject isMemberOf: aClass)
测试它是aClass的实例还是其中一个子类:
(anObject isKindOf: aClass)
答案 1 :(得分:5)
你是对的,检查你使用的确切类别(改为使用身份):
instance class == SomeClass ifTrue:[]
有用的也是isKindOf:
,它测试实例是否是给定类的类或子类:
(instance isKindOf:SomeClass)ifTrue:[]
最好和最优雅的是在超类和对等类中编写测试方法,然后使用它:
实例isSomeClass ifTrue:[]