我正在编写一个小程序,它在运行时在吱吱声中修改方法。我看到在 squeak 中有一个名为getSource
(在 CompiledMethod 类中定义)的方法,它返回已编译方法的源代码。
如果我的输入是对应于方法的符号,我如何获取方法的源代码?
您应该知道定义该方法的类,然后您可以访问CompiledMethod
通过,例如,
theClass >> methodSelectorSymbol
或者
theClass compiledMethodAt: methodSelectorSymbol
withtheClass
是具有方法的类,并且methodSelectorSymbol
是与方法相对应的符号,即您的输入。还有其他方法。例如,
theClass lookupSelector: methodSelectorSymbol
不仅搜索theClass
而且搜索它的超类。
但是,所有方法都要求您以课程为起点。