방법은 (의미에서 Java 또는 C++ 사람을 의미) 추상적이다 : "MyObject>>#myMethod
추상적이다"
myMethod
self subclassResponsibility.
그래서 당신이 대답 할 필요가 "MyObject>>#myMethod
은 #subclassResponsibility
의 발신자입니까?"
isMethodAbstract: aSelector on: aClass
^(self systemNavigation allCallsOn: #subclassResponsibility)
anySatisfy: [:each | each selector == aSelector
and: [each classSymbol == aClass name]]
을하거나 작업 공간이 평가 (#samplesPerFrame
에 적합한 교체와 함께 물론 SoundCodec
) :
이 방법을 추가하여 질문 오브젝트 것을 대답 할 수
(SystemNavigation default allCallsOn: #subclassResponsibility)
anySatisfy: [:each | each selector == #samplesPerFrame
and: [each classSymbol == SoundCodec name]]
감사합니다. 질문이 있습니다. 실제로 모든 추상 메소드의 배열을 가져 와서 클래스에 속해 있는지, 그리고 aSelector를 가지고 있는지 검사하고 있습니까? aClass에서 aSelector를 사용하여 모든 메서드를 살펴보고 aClass의 메서드뿐 아니라 모든 메서드를 처리하지 않고 #subclassResponsibility를 보내는 지 확인하는 간단한 방법이 있습니까? – user550413
'compiledMethod containsLiteral와 시도 (내가 물론 잘못 모두 가지고하지 않는 한) : # 거의 #isAbstract가하는 일입니다 – mathk
@mathk을 subclassResponsibility'. Mine은 모든 추상적 인 메소드를 찾았으므로 더 비쌉니다. –