我是靠谱客的博主 开放小虾米,最近开发中收集的这篇文章主要介绍我的Java Web之路 - Eclipse(4)- 大纲(Outline)视图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 介绍
    • 打开大纲视图
    • 大纲视图内容
    • HttpServlet大纲视图举例
    • 关联大纲视图和编辑器
    • 查看源码
    • 总结

介绍

前面的文章介绍了在Eclipse中如何配置和关联Tomcat源码,我们也已经获得了Tomcat源码并配置好了,现在让我们以HttpServlet为例来看看Eclipse的大纲视图的用法。

大纲的英文是outline,从百度翻译可以看到该单词作为名词的中文意思是:

梗概,大纲,提纲,草稿,要点,主要原则; 外形,轮廓,轮廓线,轮廓画法,略图(画法);

所以,顾名思义,大纲视图就是用来查看某个东西的要点的,对于Java类来说,要点就是属性域和方法。

打开大纲视图

如果没有打开大纲视图,可以通过以下方法打开:

  • 菜单栏 -> Window -> Show View -> Outline

大纲视图.png

大纲视图内容

可以看到,大纲视图默认显示在主界面右侧,包括标题栏、工具栏和视图主界面:

  • 最上面是标题、最小化和最大化按钮,大家可以尝试点击一下,最小化会隐藏起来变成一根竖条放在主界面最右侧;最大化会占据整个主界面,其他视图变成竖条放置在两侧;最小化和最大化之后都会有一个恢复(Restore)按钮,点击即可恢复。
  • 下一行是工具栏,从左到右依次是:
  1. Focus on Active Task:未知。
  2. Collapse All:将视图中的树状节点全部折叠起来。
  3. Sort:视图中的树状节点按照字母顺序排序,但是也先归类再排序,大致是先把内部类(以后介绍)排序,然后是静态属性、静态方法(这篇文章介绍了什么是静态成员)、非静态属性、构造方法、非静态方法等等。
  4. Hide Fields:隐藏属性。
  5. Hide Static Fields and Methods:隐藏静态成员。
  6. Hide Non-Public Members:隐藏非公有成员。
  7. Hide Local Types:未知。
  8. 最右端的倒三角:其他工具按钮。
  • 工具栏下面是视图的主界面,列举了Java类源码文件的要点,主要就是类的各个成员(内部类、属性、方法等),是按树形结构组织的。

HttpServlet大纲视图举例

按照之前文章的方法:先把鼠标移到HttpServlet这个类上,(Windows系统下)按住键盘的Ctrl键(有些笔记本可能没有这个键)同时摁下鼠标左键,这时候Eclipse的编辑器会打开另外一个标签页,如下图所示:
大纲视图2.png
编辑器打开了HttpServlet类的源码,大纲视图显示了HttpServlet类的成员。

大纲视图中,各个成员都有特殊的符号来表示,我尝试着在HelloWorld这个Servlet添加了拥有不同访问级别的属性和方法,有些还加了static、final等修饰符,效果如下:
大纲视图3.png
可以发现还是有些规律的:

  • 首先,类、接口、枚举(enum)、注解的符号是比较大的圆圈,里面是字母C、I、E、@。
  • 绿色圆形表示public、黄色圆角菱形表示protected、蓝色三角形表示包访问级别、红色正方形表示private。
  • 属性的符号最小(里面好像是个加号+),方法的符号中等。
  • 符号右上角一般表示static、final、abstract等修饰符,直接是修饰符的首字母,构造器是字母C(取自构造器英文单词Constructor)。
  • 类、接口、枚举(enum)、注解的符号右下角表示的是访问级别。
  • 符号左下角表示该成员有错误或警告等信息。

关联大纲视图和编辑器

Eclipse默认是点击大纲视图的某个节点,编辑器就会定位到相应的代码。但这个功能可以关闭/打开,就是在大纲视图的工具栏右侧的下拉菜单中的:

  • Link with Editor

查看源码

以HttpServlet为例,在上图中可以看到它的源码,右侧是它的大纲。

首先,我们看这个类的定义:

public abstract class HttpServlet extends GenericServlet

可见它又继承了另外一个类GenericServlet,我们可以用同样的方法查看该类的源码:

public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable

再用同样的方法查看ServletServletConfigSerializable的源码:

public interface Servlet
public interface ServletConfig
public interface Serializable

总结一下就是:

  • HttpServletGenericServlet都是抽象类(我们后面讨论)
  • ServletServletConfigSerializable都是接口(我们后面讨论)
  • 它们形成继承的层次,可以用UML中的类图来更加直观清晰的表示(我们后面讨论)

其次,拖动编辑器的滚动条到最底端,可以看到其源码将近1000行,没有办法一下子全部看完。

再次,在重要的地方都添加上了JavaDoc注释,这就是我们把鼠标放到该类或该类的成员上会显示其JavaDoc文档的原因。

最后,我们看它的大纲视图,可以看到大部分方法都是protected的方法,且名称都类似doXXXX,参数都是HttpServletRequestHttpServletResponse这两个类型。这些方法都有默认的实现,然而我们显然要覆盖某个方法,添加我们自己的处理HTTP请求的逻辑,然后使用HttpServletResponse生成网页并发送。这些方法就是用户(开发HttpServlet子类的开发人员)需要覆盖的方法,比如我们开发的HelloWorld这个Servlet就覆盖了doGet方法。

从这个例子我们可以看到类的继承/扩展机制的作用,需要功能扩展的覆盖父类方法或添加新方法;剩下的复用父类的方法。

总结

  • 工具的使用不必死记硬背,用的多了就记住了。
  • 大家可以多点点大纲视图的工具栏各个按钮,看看有什么效果。
  • 类可以形成继承层次。
  • 继承/扩展机制是一种很强大的代码复用、功能扩展的技术。

最后

以上就是开放小虾米为你收集整理的我的Java Web之路 - Eclipse(4)- 大纲(Outline)视图的全部内容,希望文章能够帮你解决我的Java Web之路 - Eclipse(4)- 大纲(Outline)视图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部