本文介绍如何让Java开发人员利用Eclipse的自动纠错功能来从一些无聊的事情中摆脱出来,从而将更多的精力投入到更有意义的代码设计中去。
我想,大多数Java程序员会对这一幕记忆犹新:我们忙活了大半夜,终于把代码写完兴冲冲地拿来用javac编译……然而,等待我们的常常不是惊喜,而是一长串错误报告在屏幕上翻滚而过——晕!
我们不止一次地想过:如果我们在编辑代码是就能得到错误提示,甚或能有什么能帮我们改正出现的问题,而不是像javac那样在编译无法通过时才指出哪里有误,那该多好呀?!幸运的是,这已不仅仅是个愿望。帮我们摆脱这个恶梦的当然不是javac,因为它毕竟不是编辑器,而是Eclipse下的Java 开发工具(JDT)所提供的快速修正功能。
JDT是Eclipse下的Java集成开发环境,它不仅能在编译前捕获代码中的错误,而且还能给出改正错误的建议。例如,Java文件中漏掉import语句时,“快速修正”能发现并指出这个错误,最重要的是它会建议您“添加import语句或将类型名更改为已经导入的名称”。
下面我们将详细介绍快速修正的使用方法和它能改正的错误类型。
JDT 的“快速修正”功能为我们提供了期待已久的自动修改常见问题的方法,要想使用这个功能,首先要做的是确保选中了窗口 > 首选项 > Java > 编辑器 > 注释 > 在输入时分析注释复选框和窗口 > 首选项 > Java > 编辑器 > 注释 > 在垂直标尺中指示可以使用“快速修正”来解析的注释复选框,如图:
图1启用快速修正功能
下面,我们以一个实例来解释他的具体用法。
假设我们有这样一段代码,它的功能是比较两个文件的新旧程度,也就是比较两个文件最近修改的时间。代码具体如下所示:
public classHelloEclipse{
public static voidmain(String[]args){
outString="Hello Eclipse!";
JFrameframe= newJFrame(outString);
JLabellabel= newJLabel(outString,JLabel.CENTER);
frame.getContentPane( ).add(label);
frame.setSize(300,300);
frame.setVisible( true);
}
}
读者可能已经看出这里有些错误,主要在于:变量outString未经声明;类Jframe和JLabel未经导入,所以导致不能解析标识符Jframe和JLabel。如果使用javac的话,你必须退出编辑程序,然后运行javac才能捕捉到这些错误。但是,如果在Eclipse中输入这些代码的话,会是什么样呢?如图:
图2,快速修正指示符
如上图所示,在编辑代码的时候,Eclipse会自动对输入的代码进行检查,并用红色波浪形下划线标出所找到的错误代码。更重要的是,Eclipse并非简单指出错误了事,相反,它还会进一步给出解决问题的有效建议。注意文本编辑器左侧的标记栏中黄色灯泡和红色X图标。它们的含义在于:对于图标所对应行中的错误,我们能够利用快速修正功能来加以纠正。另外,还要注意的是编辑器右边概述标尺中的桔红色矩形框,它们的作用是指出能用快速修正的语句。其中,实心的桔红色矩形用来标记编译错误。
此外,上述图标还可用于浏览要修正的问题。当鼠标指针悬浮在标记栏的第一个灯泡上时,将看到一个描述错误的提示(见图2)。当鼠标指针悬浮在编辑器右边的桔红色矩形框上时,同样给出问题说明。
图3,使用“快速修正”
要激活“快速修正”,单击相应行的灯泡,这时会看到JDT提供的修改建议。在提供的多个建议选项中,第一个是“Create local variable ‘outString’”,如图3。这里的修改建议是根据具体的上下文给出的,所以还是比较准确的。在建议列表中单击一个选项,在列表下部就会出现相应的预览,可以让开发人员提前看到及其修改后的结果,并以此决定取舍。比如,我们这里要创建局部变量,即采用第一个选项,只需双击该选项;这时我们的代码发生相应的改变:将outString声明为String类型的变量。如图4:
图4,自动修改代码
声明outString后,代码中所有因不能解析outString变量而导致的错误已全部改正过来,当然其对应的灯泡也随之消失。如图4所示,现在出错的代码只剩下两行了,并且它们的出错原因是没有导入类Jframe和JLabel。单击第一个灯泡,如下图所示:
图5,使用快速修正来导入包
现在我们接受第一个建议,双击“Import ‘javax.swing.JFrame’”,Eclipse就会自动从相应的包中导入所需的类。换句话说,在Eclipse中即便记不住包名也没关——当然记住了更好——只要知道类名也照样可以使用类:这是不是太棒了?!
好了,利用快速修正解决了这些问题之后,现在编辑器视图中已经没有灯泡了,让我们看看代码是不是真的可以编译运行了。执行下列菜单操作:运行> 运行为> Java应用程序。我们的代码就可以正确运行了,运行结果如图所示:
图6,Hello Eclipse!
用户评论