无法重构/删除方法

时间:2011-12-07 16:30:27

标签: smalltalk pharo seaside

这应该是一个简单的问题。 :)

我正在使用Pharo / Seaside。我在IDE中使用了重构功能来重命名和删除我的一些方法和类。到目前为止一切都很好。

但是,我在删除覆盖父类的方法时遇到了困难。例如,我有一个“MyClass”类,其子类为“WAComponent”。我创建了一个方法“style”,它覆盖了父类中的方法。

我决定我真的不需要覆盖“风格”,并且想要重构方法>删除“样式”。此时我收到以下提示“可能在WAPresenter中调用样式。浏览引用?”

我该怎么办?我只想要超级的“风格”方法,而不是我自己的覆盖。

非常感谢!

1 个答案:

答案 0 :(得分:5)

当您尝试删除方法时;使用重构浏览器,OmniBrowser或标准浏览器;如果图像中有该消息的发件人,系统会发出警告。这使您有机会看到删除的可能后果。它并不完美,因为a)在动态系统中,它不能确定接收器是否是您的类的实例,并且b)它不会使用#perform捕获发送者:

在您的情况下,该消息似乎有点令人困惑。此外,在Pharo 1.3中,无论您选择什么,似乎都不会删除该方法!但是直接通过浏览器(Mac上的OmniBrowser中的Cmd-x或通过菜单)删除它是没有害处的,因为对此方法的任何调用都将转到超类。