我在 Eclipse (Juno) 中对一个大型Java 项目进行了大量重构。
当我打开上下文菜单并 Refactor > Pull up... 在某个我希望移动到超类的方法上时,我收到以下通知:
上拉不适用于此类型。所有超类型都是二进制的。
我相当肯定这是因为超类是从我的项目中当前作为 jar 编译的另一个包导入的。我当然可以编辑这个 jar 并重新编译,所以问题不在于我无法访问源代码,而是 Eclipse 无法在其他包中找到源代码。
所以我的问题:
是否有任何解决方法/解决方案?
我尝试的是手动移动方法,但是,当然,我不想这样做,否则我一开始就不会使用 Eclipse 的重构功能。最重要的是,我要移动的大多数方法都是大型方法,其中包含许多其他私有方法调用,因此 Eclipse 可以很好地为我找到这些方法并一次移动它们。代码库非常大,手动移动它们很快就会变得混乱和容易出错。
编辑
根据给出的评论和答案,似乎需要进行一些澄清。
Simon André Forsberg 的一个回答建议将“jar”项目添加到我的 java 构建路径中。这已经完成了。无论如何,我仍然收到通知。
一条评论如下:
好的。准确告诉我们您希望 Eclipse 为您做什么,并提示我们Eclipse 如何根据可用信息可靠地做到这一点。– 下午 77-1
我希望 Eclipse 显示
pull up...
重构向导,而不是通知“上拉在此类型上不可用。所有超类型都是二进制的”。我不知道 Eclipse 如何可靠地做到这一点。这就是我发布这个问题的原因。