【问题标题】:Unable to refactor / remove method无法重构/删除方法
【发布时间】:2011-12-07 16:30:27
【问题描述】:

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

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

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

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

我该如何进行?我只想要超级的“风格”方法,而不是我自己的覆盖。

非常感谢!

【问题讨论】:

  • 你试过删除你的方法吗?
  • 如果重构 > 删除与删除相同,那么是的,我已经尝试过,正如我在问题中描述的那样

标签: smalltalk pharo seaside


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多