我曾在某个朋友(他是一名技术主管)所负责的项目工作,他用一个洞穴探险术语 “spelunking(洞穴探险)” 来形容在大型项目中搜寻所需内容的过程,他对这个词给出的解释是:在大量文件目录中搜索特定的类文件。对于大型 Java 项目,随着接口和类的不断增加,在代码库中查找某个文件所需的时间也会随之增加。在 Package Explorer 中梳理大量文件和目录就像是在洞穴深处探险。
如果您还在大量的包或目录中查找 Java 方法或类,则可以考虑本文提供的大型项目导航技巧。尝试放弃使用 Package Explorer 而改用此处的技巧,大多数任务都只需要少量鼠标单击和按键操作便可完成。
重构和组织
许多人认为,使用一致的重构来保持类的简洁性可以避免导航问题,也有人认为,使用包以直观的方式来组织类和接口也可以提高导航性。这两种方法都是值得推荐的,您应该努力实现其目标,无论所使用的工具多么简单。但是,应该注意不要让简便的导航影响了您的设计决策:针对特定域来设计项目。
Open Declaration
在 Galileo 出现之前的 Eclipse 版本中,打开文件以查看其内容的一种快速方法是右键单击某方法或类,然后在上下文菜单中单击 Open Declaration,在 Java 编辑器中打开 Java 元素(方法、接口或类)。除了使用上下文菜单之外,您还可以按下 Ctrl 键并将鼠标悬停在 Java 编辑器中的元素上。当鼠标悬停在元素上方时,它会转换为可以单击的链接。在 Java 编辑器中单击该链接会将您导向相应元素的声明部分。
Galileo 中新增了一个下拉列表,其中显示了打开声明的选项。单击 Open Declaration 可以在 Java 编辑器中打开所选元素(参见图 1)。
图 1. 打开声明
使用 Mac OS X 键盘快捷方式
对于本文中的所有组合键,如果您是在 Mac OS X 上使用 Eclipe,则应该将 Ctrl 替换为 Cmd。
Open Declaration 的唯一问题就是接口的使用。如果您正在使用接口,则该命令会打开元素的声明 — 它是一个接口。如果您实际上是希望打开所选元素的实现,以便查看项目运行时实际执行的 Java 代码,则可能让您感到有些郁闷。此问题在 Galileo 中的新命令特性中已经得到了解决:Open Implementation.
Open Implementation
要调用 Open Implementation,按下 Ctrl 的同时将鼠标悬停到 Java 编辑器中的某 Java 元素上,就像是需要使用超级链接来打开声明一样。此时会出现下拉列表,并且您可以单击 Open Implementation。
图 2. 打开实现