我必须在方法参数的两个复杂接口之间进行选择:InterfaceParent
和InterfaceChild
。
界面InterfaceChild
扩展了界面InterfaceParent
,其中一个将成为methodX
签名的一部分,具体取决于我发现哪个界面更合适。
根据定义,InterfaceParent
和InterfaceChild
共享许多方法,因此只需查看源文件就很难比较它们。这是我遇到的问题。
如何使用Eclipse快速比较和查看两个界面之间的差异?
如果上述说明已足够,请阅读更多解释性方案或立即停止阅读:
将接口java.util.Collection<E>
视为InterfaceParent
,将接口java.util.List<E>
视为InterfaceChild
。想象一下,我必须在它们之间做出选择。
这种情况与我的相似,因为List<E>
扩展了Collection<E>
,因此接口共享许多方法。
尝试查看这两个接口的源文件:这两个文件都有所有方法的“存根”,因此通过将两个代码编辑器相邻放置,一目了然地比较它们。
相比之下, Collection<E>
和List<E>
是小型界面,所以我的问题甚至比这还要大,但为了简单起见,让我们在我们的示例中使用Collection<E>
和List<E>
。< / p>
我希望我可以使用我的IDE(Eclipse)向我展示这些界面的差异,或者使用命令行工具输出两者的方法签名。
使用comman line工具,我可以将输出转储到文本文件,对文件进行排序并运行diff工具来查看差异,隐藏常用方法。
在示例中,我可以快速找出List<E>
上未定义Collection<E>
上定义的哪些方法,并根据此差异为methodX
选择一个接口或另一个接口
我不知道有任何工具在Java对象上执行这种“反射”,因此可以向它们传递一个完全限定的类名并获取公共接口定义输出流。如果有的话,请告诉我。
显然,使用命令行工具执行此操作会在一段时间后变得乏味,所以我想知道:Eclipse中有类似的东西吗? “轮廓”功能非常适合一种类型的概览,但我可以比较两个轮廓吗? “代码折叠”功能非常适合将源文件简化为“方法名称”,但是没有什么可以隐藏两个接口之间的常用方法并显示差异?
如果不离开Eclipse,你会怎么做这类事情?