Eclipse的奇巧淫技 (附图说明)
Eclipse大家都用吧? 最近我把玩了Eclipse一番,顺便发现了一些问题。其实也没什么大不了的,无非是些”淫技” 。
在我们遍历一个List时,我们会写:
// queries is a List instance that contains
// a list of String objects
Iterator it = queries.iterator();
while (it.hasNext()) {
String query = (String) it.next();
}
在Eclipse里,你可以把以上的事情变得简单一写: 输入while后,紧接着按Ctrl+space,你应该看到一个弹出式列表 (如下图所示):
选”while – iterate with iterator” ,Eclipse会自动生成余下的代码 (如下图):
这还不算完,你看见那些蓝色小方框了吗? 你可按TAB键可逐个切换这些小方框。当前选中的方框是”iter” ,我们的iterator命名为”it” 而不是”iter” ,所以我们直接输入”it” 以替换自动生成的”iter” ,你会发现所有”iter” 的小方框都变成了”it” (如下图):
按TAB键跳到”type” 方框,把它改成”String”。按TAB键跳到”element” 方框,把它改成”query”。要跳出方框只要按ESC即可。这样由Eclipse帮你方便得生成了如最先所示的那段代码:
// queries is a List instance that contains
// a list of String objects
Iterator it = queries.iterator();
while (it.hasNext()) {
String query = (String) it.next();
}
同样的事情在for循环里也可以做 (如下图):
选”for – iterate over collection” 。
巧妙的是Eclipse知道我们已经声明了一个名叫”queries” 的List对象,所以它自动把queries加到for-loop里了。余下的事,你应该知道怎么做了吧。
你再试试switch, if这些东西,都有类似的花样。你没事就到处按Ctrl+space (强制激活代码辅助功能),往往会有意外发现。在method的括号后面,按Ctrl+Shift+space可呼叫出method参数提示,按Ctrl+space叫出的是重载的method的不同版本。
如果你懒得用鼠标去按那个” 最大化按钮” ,你就直接按Ctrl+m,再按一下Ctrl+m就还原了,无聊吧?
有时候想吃后悔药,就按Ctrl+z倒退,但这个慢了一点。Eclipse是个优秀的CVS端,但不是每一个项目都有CVS的,这时候如何”回顾历史”呢? 其实Eclipse自己就带了一个本地的历史记录,记载了最近的代码变化情况。如下图,选中你要回退的文件,点”restore from local history” 。
弹出个”恢复本地历史”对话框,以后的事你应该知道怎么做了吧。如果你有空的话,可以再看看那个”Compare With > Local History” ,里面显示了当前文件与历史记录的对照。
不会用Debug视图的Eclipse使用者等於是在暴殓天物。这里我教你一招,一般人不怎么用。假如你的程序出了Null Pointer的异常,但你又不知道错在哪里,怎么办? 切换到Debug视图,看右上角的
Breakpoints (如下图):
按那个感叹号按钮(Add Java Exception Breakpoint) ,弹出一个对话框 (如下图) 。在里面输入NullPointerException,然后按OK,这样就在你的文件里加了一个捕捉NullPointerException的断点。每当NullPointerException发生前,Eclipse会暂停调试并指出是哪一行抛出了这个NullPointerException异常。
没了,就这些。