java插入代码块

  • 粘贴1:

当代码写到一定程度之后,就会发现很多代码都被重复地敲了N多遍,甚至毫不夸张地说:闭着眼睛都能敲出来。大量地敲这些重复地代码,除了锻炼敲键盘的速度,基本上没有其他益处,但是长期下来会浪费很多时间,降低了软件开发的效率。例如:为了在程序执行过程中输出logger信息,需要在每个class中都添加这么一段代码:

 

[java] view plain copy
 
  1. import org.slf4j.Logger;  
  2. import org.slf4j.LoggerFactory;  
  3.   
  4. public class XXXClass {  
  5.     /** 
  6.      * Logging mechanism. 
  7.      */  
  8.     private static Logger logger = LoggerFactory.getLogger(XXXClass.class);  
  9.       
  10. }  

        这段代码在不同class文件中唯一不同的就是class的名称:XXXClass。一般的人可能会一个字母一个字母地敲一遍;懒一点的人会Ctrl + C和Ctrl + V,然后把XXXClass改一下;聪明人通过几个字母加上一个快捷键就可以搞定。本文就以上面的logger为例,介绍聪明人使用Java Code Template实现的一种更方便快捷的方式。

 

1. Template设置

        Eclipse工具栏上选择Window -> Preferences -> Java -> Editor -> Templates,进入如下界面:

        列表中是Eclipse自带的Code Template,最后一栏是“on”的表示有效,没有的表示无效。如果要使自带的Code Template生效,可以选择需要的Code Template,点击“Edit...”,在打开的Edit Template对话框中,选择“Automatically insert”复选框,点击“OK”保存设置就行了。使用这些有效的自带Code Template的方法,与后面演示的logger的使用方法一样。

        点击“New...”可以创建一个新的模板,Template的详细设置如下:

        在需要声明logger的地方,输入模板名称logger,然后按Ctrl + Space快捷键,显示模板logger的提示框如下图所示:

        选择需要添加的模板logger,则模板中的代码会被自动添加,包括import的packages,注释以及logger声明。

2. Ctrl + Space失效

        在有些情况下,按了Ctrl + Space快捷键之后,没有反应,也不显示提示框。可能存在两种情况:

 

  • Case 1:没有设置Content Assist快捷键

 

        Eclipse工具栏上选择Window -> Preferences -> General -> Keys,进入如下快捷键设置界面:

        在编辑框中输入“content assist”,就会自动搜索到“Content Assist”命令,选择它之后,在下面的“Binding”编辑框中输入“Ctrl+Space”,或者直接按Ctrl + Space快捷键,然后点击“OK”。

 

  • Case 2:Ctrl + Space快捷键冲突

 

        如果Ctrl + Space已经设置为Content Assist快捷键,但是还是没有效果,可能的原因是Eclipse的Ctrl + Space快捷键与Windows系统中输入法切换的快捷键冲突。将输入法切换的快捷键修改成其他,如下图所示:

3. Ctrl + Space提示框中没有模板

        如果按了Ctrl + Space之后,提示框中却没有显示模板logger,如下图所示:

        这是因为内容提示(Content Assist)中没有选择模板提示(Template Proposals)。Eclipse工具栏上选择Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced,可以进行如下设置:

        选择两个方框中“Template Proposals”前面的复选框。如果下面方框中的“Template Proposals”不是第一个,可以选择它,然后点击“Up”按钮直到它处于第一的位置,这样每次提示框中第一个就是需要的Code Template。

  • 粘贴2:

某天在调试代码的时候,虽然是android的project还是习惯的输入syso,然后在ALT+/一下。旁边的同事就问了一下,这个log打印输出的tag是什么。接着又问了为什么syso能够智能联想出这个。第一个问题很好回答,不过对于第二个问题还真答不上来。大学里面第一次见某个学长使用这个技能之后,就默默的记住了,也没有多想是什么回事。这两天留意了一下,原来是类似java代码模版的一个东东。在一想为什么不自己定义android的联想词呢。。。
        步骤一:打开preference,搜索editor,选择java的editor,这个时候找到 sysout就可以看到它的定义了

        
        步骤二:这次我们自定义android的log打印,选择新建,输入如图所示的字符串,注意中间那段类似正则表达式的是模仿sysout的,想来应该是光标移动到这里的意思

         
        步骤三:验证一下,输入loe,按住alt+/,自动生成了如下所示的代码,并且光标还在那里

        
        很快捷有木有,再也不用调试时候输出一句log弄半天了,而且还带有调用栈的功能哦。

 

  • 我的实践:

 如下代码,

${:import(java.util.Scanner)}可以在开头导入包
"${word_selection}${}"可以定位光标。
 
${:import(java.util.Scanner)}
Scanner scan=new Scanner(System.in);//generate input flu
System.out.print("${word_selection}${}");//input reminder
=scan.nextInt();//assignment
scan.close();

 

也可以不加开头一行,直接在开头处按Ctrl+Shift+O 就可以导入缺失的包。

 

posted @ 2017-10-02 14:23  TQCAI  阅读(1017)  评论(0编辑  收藏  举报