簡體   English   中英

檢查對象是否是給定類或其子類的實例

[英]Check if an object is an instance of a given class or of a subclass of it

在Smalltalk中有一個簡單的方法嗎? 我80%確定有一些方法,但無法在任何地方找到它。

我知道我可以用

(instance class = SomeClass) ifTrue:

我知道我可以使用superclass等...但我希望有內置的東西:)

要測試anObject是否是aClass的實例:

(anObject isMemberOf: aClass)

要測試它是aClass的實例還是其中一個子類:

(anObject isKindOf: aClass)

你是對的,檢查你使用的確切類(使用身份代替):

instance class == SomeClass ifTrue:[]

Usefull也是isKindOf:它測試實例是否是給定類的類或子類:

(實例isKindOf:SomeClass)ifTrue:[]

最好和最優雅的是在超類和對等類中編寫測試方法,然后使用它:

實例isSomeClass ifTrue:[]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM