Reflection 如何查找对象理解的消息?

Reflection 如何查找对象理解的消息?,reflection,smalltalk,pharo,Reflection,Smalltalk,Pharo,在Pharo中,我知道整数理解消息to:。工作区提供了以下建议: 但是如果我从工作区检查一个整数,它不会提到到:: 搜索SmallInteger也不会在系统浏览器中显示任何内容: 如何发现可以向对象发送哪些消息?理想情况下,我也希望看到他们的源代码。每个类都理解消息所有选择器 allselector回答接收者实例可以理解的一组所有消息选择器。这包括接收方的方法字典及其超类的方法字典中的所有消息选择器 因此,请尝试打印或更好地检查: 1 class allSelectors. 回顾您的问题

在Pharo中,我知道整数理解消息
to:
。工作区提供了以下建议:

但是如果我从工作区检查一个整数,它不会提到
到:

搜索SmallInteger也不会在系统浏览器中显示任何内容:


如何发现可以向对象发送哪些消息?理想情况下,我也希望看到他们的源代码。

每个类都理解消息
所有选择器

allselector
回答接收者实例可以理解的一组所有消息选择器。这包括接收方的方法字典及其超类的方法字典中的所有消息选择器

因此,请尝试打印或更好地检查:

1 class allSelectors.

回顾您的问题,我注意到,在上一个屏幕截图中,您没有搜索
SmallInteger
,而是搜索名为
SmallInteger
包。此包不存在

但是您可能想要搜索类
SmallInteger
。这可以通过键盘快捷键Cmd-F Cmd-C(Linux上的Alt-F Alt-C)或在Nautilus系统浏览器的类面板的上下文菜单中选择查找类…来完成。这使您可以浏览在SmallInteger中实现的方法。如果您在超类中继续工作,您可以查看
SmallInteger
实例所理解的所有消息


此外,您可以在任何需要的地方键入类的名称,选择它,然后按command+B(浏览)。这将打开所述类的浏览器。

请注意,如果您只需键入“1 browse”并执行此操作,您将打开如上所示的层次结构浏览器。或者,如果键入“1”进行检查,请从“检查器”打开类浏览器。此外,您可以使用spotlight:shift+enter查找类,然后键入要查找的类名。